У меня есть несколько документов, хранящихся как BLOB в БД SQL Server.
Документы могут иметь несколько форматов (Word, Excel, PDF и т. Д.).
Я не хочу извлекать документ из файла, а затем использовать программу для его открытия: это слишком медленно, и моя процедура должна быть быстрой, чтобы позволить пользователю быстро просмотреть документ.
Оглядываясь вокруг, кажется, что лучший способ быстро отобразить документ в форме - использовать WebBrowser.
Итак, я поместил элемент управления WebBrowser (WebBrowser1) в мою форму и написал следующий код, чтобы попытаться заполнить его, используя MemoryStream, который получает результат запроса и передает его WebBrowser1:
Dim drQueryDoc As SqlDataReader
Dim sqlcmdDoc As SqlCommand = cnDB.CreateCommand 'cnDB is the connection I use to SQL Server
sqlcmdDoc.CommandText = "SELECT Documento FROM TabApprovazioni WHERE IDPassaggio = " & lblIDPassaggio.Text & ";"
drQueryDoc = sqlcmdDoc.ExecuteReader
If drQueryDoc.Read Then
Dim mstDocument As New System.IO.MemoryStream(drQueryDoc("Documento"), drQueryDoc("Documento").length)
WebBrowser1.DocumentStream = mstDocument
End If
Я получаю быстро, но это не документ в формате Word (если документ в формате Word): он похож на блокнот, пытающийся открыть документ Word: -)
Как я могу исправить этот код для правильного отображения сохраненного документа?
Идеи о том, почему документ отображается неправильно?
Допустимые альтернативы?
Большое спасибо заранее