Dim con As SqlConnection = new SqlConnection("连接字符串")
Dim com As New SqlCommand
Dim dr As SqlDataReader
Dim fst As FileStream
Dim bwr As BinaryWriter
Dim numbyte As Long ‘用来记录word文件的大小


com.Connection = con
com.CommandText = "设置选择语句"
Try
con.Open()
dr = com.ExecuteReader(CommandBehavior.SequentialAccess)
Catch ex As Exception
MsgBox(ex.Message)
End Try

If dr.Read Then

‘取得WORD的大小
numbyte = dr.GetBytes(0, 0, Nothing, 0, Integer.MaxValue)

’创建文件流来将从数据库读取的WORD保存到当地磁盘
fst = New FileStream("保存的路径和名称.doc", FileMode.CreateNew, FileAccess.Write)
bwr = New BinaryWriter(fst)

Dim arr(numbyte) As Byte
将DATAREAD中的WORD放入数组中
dr.GetBytes(0, 0, arr, 0, CInt(numbyte))
bwr.Write(arr)
bwr.Flush()
bwr.Close()
fst.Close()

End If

con.Close()

Process.Start("winword", "保存的路径名称.doc")


有缺点,如果要对文档修改,要注意更新数据库,
还要将保存的WORD文件删除掉,防止再操作有文件重名的错误!
若同时打开多个WORD保存的名称可能要注意不要重复。