RichTextBoxコンテンツをSQL varbinary(バイト配列)列に保存するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1628636

質問

RichTextBoxのコンテンツをXamlPackage形式でvarbinary(=バイト配列)に保存します。 方法については技術的なアドバイスが必要です。

実際には、FlowDocumentからバイト配列への変換方法を知る必要があります。

varbinaryとして保存することをお勧めしますか、それとも悪い考えですか?


更新

コードスニペット:

///Load
byte[] document = GetDocumentFromDataBase();
RickTextBox tb = new RickTextBox();
TextRange tr = new TextRange(tb.Document.ContentStart, tb.Document.ContentEnd)
tr.Load(--------------------------) //Load from the byte array.


///Save
int maxAllowed = 1024;
byte[] document;
RichTextBox tb = new RichTextBox();
//User entered text and designs in the rich text
TextRange tr = new TextRange(tb.Document.ContentStart, tb.Document.ContentEnd)   
tr.Save(--------------------------) //Save to byte array
if (document.Length > maxAllowed) 
{
    MessageBox.Show((document.Length - maxAllowed) + " Exceeding limit.");
    return;
}
SaveToDataBase();
TextRange
役に立ちましたか?

解決

今では完全な例を見つけることはできませんが、XamlReaderとXamlWriterを使用して、文書を文字列に出し入れすることができます。そこから、UnicodeEncoding、AsciiEncoding、またはバイトを出し入れする任意のエンコーダーを使用できます。

文字列からドキュメントを設定するための私の短い例... docReaderは私のフロードキュメントリーダーです

        private void SetDetails(string detailsString)
    {
        if (docReader == null)
            return;
        if (String.IsNullOrEmpty(detailsString))
        {
            this.docReader.Document = null;
            return;
        }
        using (
        StringReader stringReader = new StringReader(detailsString))
        {
            using (System.Xml.XmlReader reader = System.Xml.XmlReader.Create(stringReader))
            {
                this.docReader.Document = XamlReader.Load(reader) as FlowDocument;
            }
        }
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top