2009-08-23 20 views
5

Tôi muốn sử dụng WText RichTextBox để chỉnh sửa dữ liệu và lưu nó vào trường SQL. Tôi cần tất nhiên văn bản được lưu dưới dạng văn bản đa dạng, không chỉ là văn bản đơn giản của khóa học.Lưu và truy xuất RichTextBox.Document từ/đến SQL?

  1. Loại dữ liệu nào là tốt nhất để lưu trữ trong máy chủ SQL (2005 - quên luồng tệp)?
  2. Làm cách nào để lưu/truy xuất?

Trả lời

9

Bạn có thể lưu tài liệu vào một chuỗi XAML sử dụng XamlWriter:

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

Sau đó bạn có thể lưu các chuỗi XAML vào một cơ sở dữ liệu giống như bất kỳ văn bản nào khác.

Để tải lại nó từ một chuỗi XAML, sử dụng XamlReader:

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

Xin chào, @Thomas Levesque. 1 cho câu trả lời này. Nó làm việc cho tôi. Nhưng tôi có một vấn đề để xử lý các sự kiện của phần tử sau khi lấy ra từ cơ sở dữ liệu. Vui lòng xem câu hỏi này https://stackoverflow.com/questions/34123349/handle-hyperlink-click-event-after-load-from-database-in-c-sharp-richtextbox –

2

Kiểu dữ liệu trong SQL có lẽ là NVARCHAR (MAX): Nvarchar có nghĩa là bạn có thể lưu trữ unicode và MAX có nghĩa là bạn có thể lưu trữ số lượng không giới hạn (lên tới 2GB) dữ liệu.

+0

Bạn có recoment để lưu nó varbinary? – Shimmy

+0

varbinary là điển hình cho hình ảnh hoặc các luồng byte khác. – edosoft

+0

Điều gì là tốt hơn cho hiệu suất? Tôi không chắc chắn liệu hình ảnh có cần thiết hay không. Nhưng nếu sử dụng hiệu suất varbinary <= varchar, hơn tôi thích varchar, vì tôi muốn làm cho nó khó đọc dữ liệu thô sql. Vấn đề là tôi donno làm thế nào để exrecat/tải FlowDocument từ byte [] – Shimmy

Các vấn đề liên quan