关于ACCESS数据库中存取二进制文件的问题
以下程序可以运行,没有问题,但是当把数据库中的二进制文件提出来后不能打开(只是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