2009-08-23 15 views
5

Verileri düzenlemek ve SQL alanına kaydetmek için bir Wpf RichTextBox kullanmak istiyorum. Tabii ki sadece metnin basit bir metni değil, zengin metin olarak kaydedilecek metne ihtiyacım var.RichTextBox.Document kaydedin ve SQL'den almak için?

  1. SQL sunucusunda depolamak için hangi veri türü en iyi olmalıdır (2005 - dosya akışı hakkında unut)?
  2. Nasıl kaydeder/alırım?

cevap

9

Sen XamlWriter kullanarak bir XAML dizeye belgeyi kaydedebilirsiniz:

 StringWriter wr = new StringWriter(); 
     XamlWriter.Save(richTextBox.Document, wr); 
     string xaml = wr.ToString(); 

Daha sonra başka bir metin gibi bir veritabanına XAML dize kaydedebilirsiniz.

bir XAML dize onu yeniden yüklemek için XamlReader kullanın:

 FlowDocument doc = XamlReader.Parse(xaml) as FlowDocument; 
+0

Merhaba, @Thomas Levesque. Bu cevap için +1. Benim için çalışıyor. Ama ben veri tabanından alındıktan sonra element olaylarını işlemek için bir sorunum var. Lütfen şu soruya bakın https://stackoverflow.com/questions/34123349/handle-hyperlink-click-event-after-load-from-database-in-c-sharp-richtextbox –

2

SQL veri türü muhtemelen DEPARTMENTNAME (MAX) olmalıdır: Nvarchar Eğer unicode saklayabilir anlamına gelir ve MAX sınırsız miktarda, saklayabileceğiniz anlamına gelir verilerinin (iyi 2GB zaten).

+0

bunu değişken ikili kaydetmek Recoment misiniz? – Shimmy

+0

varbinary, görüntüler veya diğer bayt akışları için tipiktir. – edosoft

+0

Performans için daha iyi nedir? Resimlerin gerekip gerekmediğinden emin değilim. Fakat eğer varbinary'nin performans kullanımı <= varchar ise, varchar'ı tercih ettiğimden, sql ham verilerini okumak zorlaşmak istiyorum. Şey, FlowDocument öğesinin bayttan nasıl yükleneceğini/yükleyeceğimi bilmiyorum [] – Shimmy

İlgili konular