关于ACCESS数据库中存取二进制文件的问题

netdragon2 2012-04-22 08:45:49
以下程序可以运行,没有问题,但是当把数据库中的二进制文件提出来后不能打开(只是zip文件不能打开)
Dim fs = New FileStream("C:\Documents and Settings\Administrator\桌面\12345.zip", IO.FileMode.Open, IO.FileAccess.Read)
试过
Dim fs = New FileStream("C:\Documents and Settings\Administrator\桌面\12345.doc", IO.FileMode.Open, IO.FileAccess.Read)
这样的文件能用office打开
换句话说,*.doc或者*.jpg的文件没问题,*.zip就出错了,zip文件不能解压出来,为什么?




''' <summary>
''' 把文件写入Access数据库中的OLE字段
''' </summary>
''' <remarks></remarks>
Private Sub AddFileToAccess()
'读入文件数据
Dim fs = New FileStream("C:\Documents and Settings\Administrator\桌面\12345.zip", IO.FileMode.Open, IO.FileAccess.Read)
Dim imgData(fs.Length - 1) As Byte
fs.Read(imgData, 0, fs.Length - 1)
fs.Close()

Dim tempConnection As New OleDbConnection
Dim tempAdapter As OleDbDataAdapter
Dim tempDataset As New DataSet
'打开数据库连接
tempConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\test.mdb"
tempConnection.Open()
tempAdapter = New OleDbDataAdapter("SELECT * FROM test WHERE 1=0", tempConnection)
Dim cb As New OleDbCommandBuilder(tempAdapter)
tempAdapter.Fill(tempDataset)
'插入一条记录
Dim tempDataRow As DataRow
tempDataRow = tempDataset.Tables(0).NewRow()
tempDataRow("img") = imgData
tempDataset.Tables(0).Rows.Add(tempDataRow)
tempAdapter.Update(tempDataset)
tempConnection.Close()
End Sub
''' <summary>
''' 提取Access数据库中的文件到硬盘中
''' </summary>
''' <remarks></remarks>
Private Sub TiFileFromAccess()
Dim tempConnection As New OleDbConnection
Dim tempAdapter As OleDbDataAdapter
Dim tempDataset As New DataSet
'打开数据库连接,取出数据
tempConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\test.mdb"
tempConnection.Open()
tempAdapter = New OleDbDataAdapter("SELECT TOP 1 * FROM test", tempConnection)
tempAdapter.Fill(tempDataset)
tempConnection.Close()

If tempDataset.Tables(0).Rows.Count > 0 Then
'将文件保存到硬盘文件c:\2.jpg
Dim imgData() As Byte
imgData = tempDataset.Tables(0).Rows(0).Item("img")
Dim fs As FileStream
fs = File.Create("C:\Documents and Settings\Administrator\桌面\567.zip", imgData.Length - 1)
fs.Write(imgData, 0, imgData.Length - 1)
fs.Close()
End If
End Sub
...全文
122 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧