轉帖|其它|編輯:郝浩|2011-04-07 13:38:44.000|閱讀 1262 次
概述:做一個項目,需要圖文一起存入數據庫,在網上瀏覽了很久。終于實現了在RICHTEXTBOX里面和數據庫讀寫圖文的方法。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
做一個項目,需要圖文一起存入數據庫,在網上瀏覽了很久。終于實現了在RICHTEXTBOX里面和數據庫讀寫圖文的方法。
存入數據庫:
public string toxaml()
{
// Stream s = new MemoryStream(); // 其他的什么Stream類型都沒問題
//// XamlWriter.Save(
MemoryStream s=new MemoryStream();
TextRange documentTextRange = new TextRange
(this.richTextBox1.Document.ContentStart,
this.richTextBox1.Document.ContentEnd);
documentTextRange.Save(s, DataFormats.XamlPackage);
return Convert.ToBase64String(s.ToArray());
//return Convert.ToString(s.ToArray());
}
然后存入數據庫。
注意不能用//return Convert.ToString(s.ToArray());不知道什么原因。用這句存入數據庫是SYSTEM..BYTE[] ?
讀取數據庫
TextRange tr = new TextRange(this.richTextBox1.Document.ContentStart,
this.richTextBox1.Document.ContentEnd);
////convert string to MemoryStream
//MemoryStream ms = GetMemoryStreamFromString(buffer);
//tr.Load(ms, DataFormats.XamlPackage);
MemoryStream s = new MemoryStream((Convert.FromBase64String(buffer)));
// XmlReader xr = XmlReader.Create(s);
//FlowDocument fd = XamlReader.Load(xr) as FlowDocument;
//this.richTextBox1.Document = fd;
TextRange TR = new TextRange(this.richTextBox1.
Document.ContentStart, this.richTextBox1.Document.ContentEnd);
TR.Load(s, DataFormats.XamlPackage);
Xaml文件有兩種,一種是保存圖片的地址的Xaml,另外一種是直接保存圖片的XamlPackage。使用直接保存圖片的模式,這樣圖片是以二進制的形式存在Xaml文件中的,讀取后就不會有問題了。另外讀取時使用的是TextRange.Load,格式選擇就是XamlPackage。讀取Xaml也沒有問題,還可以讀Rtf和Text文件。XamlReader不適合用來讀取FlowDocument的內容。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:博客園