2015-08-19 5 views
0

Мне нужно получить документ Word, прикрепленный в базе данных sql (сохраненный как varbinary (MAX)) .. Я получил строку типа '??????' в richtextBox..any помощи, как получить его в richbox или текстовый документ в vb.net ..many благодаряИзвлечь документ Word из базы данных SQL

 Dim docID As Integer = patDocGridView.SelectedRows(0).Cells("ID").Value.ToString() 
     Dim doc_File As PatientDocument = _context.PatientDocument.Where(Function(a As PatientDocument) a.ID = docID).FirstOrDefault 

     If Not (IsDBNull(doc_File)) Then 
      Dim buffer() As Byte = CType(doc_File.Doc_File, Byte()) 

      Dim myString As String = System.Text.Encoding.ASCII.GetString(buffer) 
      rtbPatDocFile.Text = myString 
     Else 
      rtbPatDocFile.Clear() 
     End If 
+0

Что такое 'PatientDocument', где это определено –

+0

Что вы получаете в' myString'? и как сохранить документ в базе данных? – NeverHopeless

ответ

0
  Dim ms As New MemoryStream() 
      ms.Write(row.Field(Of Byte())("info"), 0, row.Field(Of Byte())("info").Length) 
      ms.Seek(0, SeekOrigin.Begin) 
      LoginInfoBox.LoadFile(ms, RichTextBoxStreamType.RichText) 

Где LoginInfoBox является RichTextBox.

Это загружает запись из базы данных MySQL и отображает ее в richtextbox. В моем случае файл в базе данных является rtf.

Я не думаю, что вы можете использовать кодировку ascii, поскольку файл слова не будет ascii. вы можете попробовать encoding.utf8, и вы не можете использовать строку, насколько мне известно, для хранения файла слова.

row - это datarow, содержащий строку из базы данных (информация - это поле, содержащее rtf)

+0

Часть вашей проблемы - это кодировка ascii, файлы слов будут иметь управляющие символы, которые не являются ascii. Попробуйте encoding.utf8 – Peterp

Смежные вопросы