2009-08-23 56 views
5

Quiero usar Wpf RichTextBox para editar datos y volver a guardarlos en el campo SQL. Necesito, por supuesto, el texto que se guardará como texto enriquecido, no solo texto simple, por supuesto.Guardar y recuperar RichTextBox.Document from/to SQL?

  1. ¿Qué tipo de datos debe ser mejor para almacenar en el servidor SQL (2005 - olvídese de la secuencia de archivos)?
  2. ¿Cómo lo guardo/lo recupero?

Respuesta

9

Puede guardar el documento en una cadena usando XAML XamlWriter:

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

continuación, puede guardar la cadena XAML a una base de datos como cualquier otro texto.

para recargar desde una cadena de XAML, utiliza XamlReader:

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

Hola, @Thomas Levesque. +1 para esta respuesta. Funciona para mí Pero tengo un problema para manejar eventos de elemento después de recuperar de la base de datos. Por favor, mira esta pregunta https://stackoverflow.com/questions/34123349/handle-hyperlink-click-event-after-load-from-database-in-c-sharp-richtextbox –

2

El tipo de datos en SQL probablemente debería ser NVARCHAR (MAX): Nvarchar significa que puede almacenar unicode, y MAX significa que puede almacenar cantidades ilimitadas, (hasta 2 GB de todos modos) de datos.

+0

¿Le recoment para guardarlo varbinary? – Shimmy

+0

varbinary es típicamente para imágenes u otras secuencias de bytes. – edosoft

+0

¿Qué es mejor para el rendimiento? No estoy seguro de si se necesitarán imágenes. Pero si el uso de rendimiento de varbinary <= varcharary, prefiero varchar, primo, quiero que sea difícil leer los datos brutos de sql. El problema es que no sé cómo excavar/cargar el FlowDocument desde el byte [] – Shimmy

Cuestiones relacionadas