Vb.net 以高效的方式在表单中显示文档预览

Vb.net 以高效的方式在表单中显示文档预览,vb.net,webbrowser-control,blob,document,memorystream,Vb.net,Webbrowser Control,Blob,Document,Memorystream,我有几个文档作为BLOB存储在SQL Server数据库中 文档可以有多种格式(Word、Excel、PDF等) 我不想在文件中提取文档,然后使用程序打开它:它太慢,我的过程必须很快,才能让用户快速查看文档 环顾四周,快速在表单中显示文档的最佳方法似乎是使用WebBrowser 因此,我在表单中放置了一个WebBrowser控件(WebBrowser1),并编写了以下代码来尝试填充它,使用MemoryStream获取查询结果并将其提供给WebBrowser1: Dim drQueryDo

我有几个文档作为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文档的记事本:-)

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

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

有效的替代方案


事先非常感谢

这是不可能的,这些程序需要一个文件。这个“问题”从未解决,因为它不需要解决。由于文件系统缓存,写入文件的速度实际上并不慢。感谢您的评论。我理解你的意思,但打开Word速度很慢,会打开另一个包含文档的窗口。根据这一点:应该可以在WebBrowser中显示Office文档……是的,这在上个世纪很流行。嵌入支持在Office2007中被弃用,并在2010年被完全取消,它将不会回来。否则不会使它更快,Word在OLE嵌入模式下使用时仍然会耗尽进程。AdobeReader也一样。是的,这是缓慢的,因为这些是需要一段时间才能启动的大型程序,它与文件无关。向superuser.com寻求加速建议,所以你说没有办法快速预览表单中的文档。。。这对我来说是个坏消息。我必须找到另一个解决办法。非常感谢你抽出时间!