VB+SQL 图片存取vb 代码 VB 窗体界面如下: 1.把图片写入到 Field 中函数代码: Private Sub picsavetodb(ByRef fld As ADODB.Field, diskfile As String) Const blocksize = 4096 Dim bytedata() As Byte Dim numblocks As Long Dim filelength As Long Dim leftover As Long Dim sourcefile As Long Dim i As Long sourcefile = FreeFile Open Trim(CommonDialog1.filename) For Binary Access Read As sourcefile filelength = LOF(sourcefile) If filelength = 0 Then Close sourcefile MsgBox Trim(CommonDialog1.filename) & "无内容或不存在!" Else numblocks = filelength \ blocksize leftover = filelength Mod blocksize fld.Value = Null ReDim bytedata(blocksize) For i = 1 To numblocks Get sourcefile, , bytedata() fld.AppendChunk bytedata() Next ReDim bytedata(leftover) Get sourcefile, , bytedata() fld.AppendChunk bytedata() Close sourcefile End If End Sub 2.把图片存入SQL 数据库XS(学生表)中: Private Sub Command1_Click() Dim s As String Dim bytedata() As Byte Dim adofld As ADODB.Field s = "select * from xs where 学号='" & Trim(Text1.Text) & "'" sqlres.Open s, connectstring, adOpenDynamic, adLockPessimistic If Not sqlres.EOF Then Set adofld = sqlres.Fields("照片") If CommonDialog1.filename <> "" Then Call picsavetodb(adofld, "filename") End If sqlres.Update 3.把图片从 SQL 数据库读入VB 图片框: Private Sub Command3_Click() Dim sqlres As ADODB.Recordset Set sqlres = New ADODB.Recordset sqlres.Open "select * from xs where 学号='" & Trim(Text1.Text) & "'", connectstring, adOpenDynamic, adLockPessimistic Dim stream As ADODB.stream Set stream = New ADODB.stream stream.Mode = adModeReadWrite 'Image1.Picture = LoadPicture("") If Not IsNull(sqlres.Fields("照片")) Then stream.Type = adTypeBinary stream.Open stream.Write sqlres.Fields("照片") stream.SaveToFile "filename", adSaveCreateOverWrite Image1.Picture = LoadPicture("filename") sqlres.Close stream.Close End If End Sub 4 修改图片: Private Sub Command2_Click() Dim filename As String CommonDialog1.Filter = "图像(*.jpg)|*.jpg|位图(*.bmp)|*.bmp" CommonDialog1.InitDir = App.Path & "\图片库" CommonDialog1.ShowOpen filename = CommonDialog1.filename Image1.Picture = LoadPicture(filename) End Sub