2009-08-23 18 views
5

मैं डेटा संपादित करने और इसे SQL फ़ील्ड में सहेजने के लिए एक Wpf RichTextBox का उपयोग करना चाहता हूं। मुझे निश्चित रूप से टेक्स्ट को समृद्ध टेक्स्ट के रूप में सहेजने की ज़रूरत है, न केवल पाठ्यक्रम का सरल पाठ।RichTextBox.Document से/SQL से पुनर्प्राप्त करें और पुनर्प्राप्त करें?

  1. SQL सर्वर (2005 - फ़ाइल स्ट्रीम के बारे में भूलना) में संग्रहीत करने के लिए कौन सा डेटा-प्रकार सबसे अच्छा होना चाहिए?
  2. मैं इसे कैसे सहेज/पुनर्प्राप्त कर सकता हूं?

उत्तर

9

आप XamlWriter का उपयोग कर एक XAML स्ट्रिंग के लिए दस्तावेज़ बचा सकते हैं:

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

इसके बाद आप किसी भी अन्य पाठ की तरह एक डेटाबेस के लिए XAML स्ट्रिंग बचा सकता है।

एक XAML स्ट्रिंग से यह फिर से लोड करने के लिए, XamlReader का उपयोग करें:

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

हाय, @ थॉमस लेवेस्क। इस उत्तर के लिए +1। यह मेरे लिए काम करता है। लेकिन मुझे डेटाबेस से पुनर्प्राप्त करने के बाद तत्व की घटनाओं को संभालने में समस्या है। कृपया, इस सवाल को देखें https://stackoverflow.com/questions/34123349/handle-hyperlink-click-event-after-load-from-database-in-c-sharp-richtextbox –

2

एसक्यूएल में डेटाप्रकार शायद होना चाहिए NVARCHAR (मैक्स): Nvarchar मतलब है कि आप यूनिकोड स्टोर कर सकते हैं, और मैक्स मतलब है कि आप असीमित मात्रा, स्टोर कर सकते हैं (अच्छी तरह से 2GB तक वैसे भी) डेटा की।

+0

आप इसे varbinary को बचाने के लिए recoment होगा? – Shimmy

+0

varbinary छवियों, या अन्य बाइट धाराओं के लिए विशिष्ट है। – edosoft

+0

प्रदर्शन के लिए बेहतर क्या है? मुझे यकीन नहीं है कि छवियों की आवश्यकता होगी या नहीं। लेकिन अगर varbinary के प्रदर्शन का उपयोग <= varchar, मैं वर्चर पसंद करते हैं, cuz मैं एसक्यूएल कच्चे डेटा को पढ़ने के लिए कठिन बनाना चाहता हूं। बात यह है कि मैं नहीं जानता कि बाइट से FlowDocument को कैसे निकाला/लोड किया जाए [] – Shimmy

संबंधित मुद्दे