如何把图存入数据库?
如何把vb中picture控件画的图存入ACCESS数据库?请高手告之!! 问题点数:20、回复次数:11Top
1 楼tinafang(向高手学习……)回复于 2002-08-15 20:40:24 得分 0
好象不行吧,Access好象不支持二进制数据格式吧
用SQL Server吧,操作也很方便的。
还有一种方法就是用一个文本字段记录相对路径,再用FSO把图片拷到你的程序目录里,不过这样安全性好象就不行了。
Top
2 楼feihong0233(泓)回复于 2002-08-15 20:57:08 得分 0
使用DAODC直接绑定PictureBox就可以了,
ADO绑定的话好像只可以浏览不可以存储,
不过你可以使用文件来存到数据库里。
Access可以存图片。Top
3 楼zzymouse(努力工作Ing)回复于 2002-08-15 21:39:16 得分 0
在access 数据库里面建议1个picture数据项,设为ole类型,再把图片用二进制写入数据库,读入数据的时候再用二进制形式把它读出来Top
4 楼dczlxl(野猫)回复于 2002-08-16 09:01:22 得分 0
zzymouse(中原一点红) :
请讲具体点,好吗?Top
5 楼feihong0233(泓)回复于 2002-08-16 10:04:50 得分 20
http://feihong0233.myetang.com/picture.exe
一个自解压包,
小小的例子Top
6 楼dczlxl(野猫)回复于 2002-08-16 11:01:12 得分 0
怎么给分呀!!
Top
7 楼robin_xin_xin(鳄鱼宝宝)回复于 2002-08-16 11:01:13 得分 0
存:
Public Sub save_picture()
Dim cnn As New ADODB.Connection, rst As New ADODB.Recordset
Dim bit() As Byte
dim varPath as string '图片的路径
varPath = "图片路径"
cnn.open "连接数据库的字符串"
sSql = "SELECT * FROM 表 WHERE 关键字='" & 关键值 & "'"
'选出要增加或修改图片记录的记录
rst.Open sSql, cnn, adOpenKeyset, adLockOptimistic
If Not (rst.EOF And rst.BOF) Then
If VarPath = "" Then
' 然后将字节数组的内容写入数据库即可
rst.Fields("图片") = ""
rst.UPDATE
Else
Open VarPath For Binary As #1
ReDim bit(LOF(1)) As Byte
Get 1, 1, bit
Close 1
' 然后将字节数组的内容写入数据库即可
rst.Fields("图片").AppendChunk bit
rst.UPDATE
End If
End If
end sub
取:
Public Sub show_picture()
Dim REC As Recordset
Dim sSql As String
Dim I As Integer
Set REC = New Recordset
Dim bit1() As Byte
Dim sa As String
sSql = "SELECT * FROM 表 WHERE 关键字 ='" & 关键值 & "'"
REC.Open sSql, Conn, adOpenStatic, adLockOptimistic, adCmdText
If REC.EOF Or REC.BOF Then
Exit Sub
Else
Picture1.Picture = Nothing
If REC("图片").ActualSize > 0 Then
bit1 = REC.Fields("图片").GetChunk(REC("图片").ActualSize)
'然后将字节数组的内容拼装成文件即可
Open "c:\1.bmp" For Binary As #1
Put 1, 1, bit1
Close 1
Picture1.Picture = LoadPicture("c:\1.bmp")
kill ("c:\1.bmp")
End If
End If
rec.close
Set REC = Nothing
Exit Sub
Err:
MsgBox "读取图片出错!", OKOnly, "系统提示"
End SubTop
8 楼dczlxl(野猫)回复于 2002-08-16 11:05:22 得分 0
我不想用临时文件怎么办??
Top
9 楼feihong0233(泓)回复于 2002-08-16 11:57:15 得分 0
我给你的例子没有用临时文件~
不过是DAODCTop
10 楼dczlxl(野猫)回复于 2002-08-16 16:57:46 得分 0
怎么给分呢??
Top
11 楼JERRY_LIU(formulas)回复于 2002-08-16 17:16:58 得分 0
點窗口的右下角的管理按鈕再在要給分人的格子裡輸入分數
點給分就可以
不要忘記輸密碼噢Top




