以有效的方式在表单中显示文档预览

时间:2012-01-04 11:10:29

标签: vb.net webbrowser-control blob document memorystream

我有几个文档存储为SQL Server数据库中的BLOB。

文档可以有多种格式(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文档的记事本: - )

如何更正此代码以正确方式显示存储的文档?

关于为什么它没有以正确的方式显示文档的想法?

有效的替代方案?

非常感谢提前

0 个答案:

没有答案