'**************************读图片文件************************************** Sub GetPicFromDB(cn As ADODB.Connection) On Error Resume Next Dim fld As Field Dim strTemp As String Dim stm As ADODB.Stream Set stm = New ADODB.Stream 'strTemp = "c:\temp.bmp" Set rs1 = New ADODB.Recordset rs1.Open "select * from rs_http where htbh='" & frm_manage.Grid2.TextMatrix(frm_manage.Grid2.RowSel, 0) & "'", cn, , , adCmdText While Not rs1.EOF '*********将数据库中的文件读到硬盘上************************* ' strTemp = App.Path + "\temp\" + rs1!Name '`临时文件,用来保存读出的图片 With stm .Type = adTypeBinary .Open .Write rs1("tp").value strTemp = App.Path & "\temp1\" & rs1!Name .SaveToFile strTemp, adSaveCreateOverWrite .Close End With Set itemX = lvwPic.ListItems.add(, App.Path & "\temp1\" & rs1!Name, rs1!Name, 1, 1) itemX.SubItems(1) = rs1!bz rs1.MoveNext Wend Set stm = Nothing rs1.Close Set rs1 = Nothing End Sub'******************将图片文件保存到数据库中************************* Sub SavePicToDb(cn As ADODB.Connection, table1 As String, field1 As String, file1 As String, id1 As String) On Error Resume Next Dim stm As ADODB.Stream Set stm = New ADODB.Stream Set rs1 = New ADODB.Recordset rs1.Open "select * from " & table1 & " where id = " & id1, cn, adOpenKeyset, adLockOptimistic With stm .Type = adTypeBinary .Open .LoadFromFile file1 'DLG.FileName End With With rs1 .Fields(field1) = stm.Read .Update End With rs1.Close Set rs1 = Nothing End Subhttp://support.microsoft.com/default.aspx?scid=kb;EN-US;258038 http://expert.csdn.net/Expert/topic/2315/2315286.xml?temp=.2765619
给一个vb的例子给你 Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim stm As ADODB.StreamPrivate Sub SavePictureToDB(cn As ADODB.Connection) '将BMP图片存入数据库 On Error GoTo EH Set stm = New ADODB.Stream rs.Open "select ImagePath,ImageValue from tbl_Image", cn, adOpenKeyset, adLockOptimistic CommonDialog1.ShowOpen Text1.Text = CommonDialog1.FileName
With stm .Type = adTypeBinary .Open .LoadFromFile CommonDialog1.FileName End With With rs .AddNew .Fields("ImagePath") = Text1.Text .Fields("ImageValue") = stm.Read .Update End With rs.Close Set rs = Nothing Exit Sub EH: MsgBox Err.Description, vbInformation, "Error" End Sub Private Sub LoadPictureFromDB(cn As ADODB.Connection) '载数据库中读出BMP图片 On Error GoTo EH Dim strTemp As String Set stm = New ADODB.Stream strTemp = "c:\temp.tmp" '临时文件,用来保存读出的图片 rs.Open "select ImagePath,ImageValue from tbl_image", cn, , , adCmdText With stm .Type = adTypeBinary .Open .Write rs("ImageValue") .SaveToFile strTemp, adSaveCreateOverWrite .Close End With Image1.Picture = LoadPicture(strTemp) Set stm = Nothing rs.Close Set rs = Nothing Exit Sub EH: MsgBox Err.Description, vbInformation, "Error" End Sub
'**************************读图片文件**************************************
Sub GetPicFromDB(cn As ADODB.Connection)
On Error Resume Next
Dim fld As Field
Dim strTemp As String
Dim stm As ADODB.Stream
Set stm = New ADODB.Stream
'strTemp = "c:\temp.bmp"
Set rs1 = New ADODB.Recordset
rs1.Open "select * from rs_http where htbh='" & frm_manage.Grid2.TextMatrix(frm_manage.Grid2.RowSel, 0) & "'", cn, , , adCmdText
While Not rs1.EOF
'*********将数据库中的文件读到硬盘上*************************
' strTemp = App.Path + "\temp\" + rs1!Name '`临时文件,用来保存读出的图片 With stm
.Type = adTypeBinary
.Open
.Write rs1("tp").value
strTemp = App.Path & "\temp1\" & rs1!Name
.SaveToFile strTemp, adSaveCreateOverWrite
.Close
End With
Set itemX = lvwPic.ListItems.add(, App.Path & "\temp1\" & rs1!Name, rs1!Name, 1, 1)
itemX.SubItems(1) = rs1!bz
rs1.MoveNext
Wend
Set stm = Nothing
rs1.Close
Set rs1 = Nothing
End Sub'******************将图片文件保存到数据库中*************************
Sub SavePicToDb(cn As ADODB.Connection, table1 As String, field1 As String, file1 As String, id1 As String)
On Error Resume Next
Dim stm As ADODB.Stream
Set stm = New ADODB.Stream
Set rs1 = New ADODB.Recordset
rs1.Open "select * from " & table1 & " where id = " & id1, cn, adOpenKeyset, adLockOptimistic
With stm
.Type = adTypeBinary
.Open
.LoadFromFile file1 'DLG.FileName
End With
With rs1
.Fields(field1) = stm.Read
.Update
End With
rs1.Close
Set rs1 = Nothing
End Subhttp://support.microsoft.com/default.aspx?scid=kb;EN-US;258038
http://expert.csdn.net/Expert/topic/2315/2315286.xml?temp=.2765619
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim stm As ADODB.StreamPrivate Sub SavePictureToDB(cn As ADODB.Connection)
'将BMP图片存入数据库
On Error GoTo EH
Set stm = New ADODB.Stream
rs.Open "select ImagePath,ImageValue from tbl_Image", cn, adOpenKeyset, adLockOptimistic
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
With stm
.Type = adTypeBinary
.Open
.LoadFromFile CommonDialog1.FileName
End With
With rs
.AddNew
.Fields("ImagePath") = Text1.Text
.Fields("ImageValue") = stm.Read
.Update
End With
rs.Close
Set rs = Nothing
Exit Sub
EH: MsgBox Err.Description, vbInformation, "Error"
End Sub
Private Sub LoadPictureFromDB(cn As ADODB.Connection)
'载数据库中读出BMP图片
On Error GoTo EH
Dim strTemp As String
Set stm = New ADODB.Stream
strTemp = "c:\temp.tmp" '临时文件,用来保存读出的图片
rs.Open "select ImagePath,ImageValue from tbl_image", cn, , , adCmdText
With stm
.Type = adTypeBinary
.Open
.Write rs("ImageValue")
.SaveToFile strTemp, adSaveCreateOverWrite
.Close
End With
Image1.Picture = LoadPicture(strTemp)
Set stm = Nothing
rs.Close
Set rs = Nothing
Exit Sub
EH: MsgBox Err.Description, vbInformation, "Error"
End Sub
http://support.microsoft.com/default.aspx?scid=kb;EN-US;258038
可不可以不建临时文件而直接把recordset or stream 中的图片用picture控件显示出来啊??
Set Picture1.DataSource = Rs
Picture1.DataField = "ImageValue"
就好了