strPath
=
App.Path
If
Right(strPath,
1)
<>
\"\\\"
Then
strPath
=
strPath
&
\"\\\"
MyData.DatabaseName
=
strPath
&
\"ExampleDB.mdb\"
\'数据库存地址
MyData.RecordSource
=
\"Info\"
\'表名
然后么,使用的就是ado。。。然后,自己来吧,你说的有点问题,这种 *** 作只有显示和添加两种,说读写有点不专业了。。。
1、从数据库中显示所需要的图片首先,添加一个Data数据控件,设置它的DatabaseName和RecordSource属性,
strPath = App.Path
If Right(strPath, 1) <>"\" Then
strPath = strPath &"\"
MyData.DatabaseName = strPath &"ExampleDB.mdb" '数据库存地址
MyData.RecordSource = "Info" '表名
第二步,添加Image控件用来显示图片,设置它的DataSource和DataField属性。例如本例中: Image1.DataSource="MyData"和Image1.DataField=" MyPhoto" 。然后设置其它具有数据绑定功能的控件用来显示所要的其它内容,经过这两步的 *** 作,运行程序就可以显示你要的数据了。
2、向数据库中添加需要存储的图片
首先,利用数据控件所具有的AddNew属性,添加一个按钮,双击后添加如下代码MyData.Recordset.AddNew
第二步,为Image控件图片指定图片路径Image1.Picture = LoadPicture("图片路径"),经过这两步的 *** 作,就可以向数据库中添加图片了。
这种方法最简单快捷,要写的代码量很少。但是这种方法在运行速度和灵活性方面有一定的限制,适合于初学者和一些简单的应用,要想灵活多变的显示图像,下面介绍的方法或许更适应您的要求。
利用编写代码实现图片的存储与显示
这种方法相对于方法一来说,代码量大,但是它 *** 作灵活,能够满足多样形式下的 *** 作,受到更多编程者的青睐。但是涉及到的知识面相对要多一些,不仅要掌握数据库的 *** 作方法,还要二进制文件的读写作进一步的了解。关于数据库及二进制文件的基本 *** 作很多参考书上都介绍的比较详细,需要时请查阅即可。在编程之前把本部分用到的变量说明如下:
Dim RS As New ADODB.Recordset
Dim Chunk() As Byte
Const ChunkSize As Integer = 2384
Dim DataFile As Integer, Chunks, Fragment As Integer
Dim MediaTemp As String
Dim lngOffset, lngTotalSize As Long
Dim i As Integer
1、从数据库中显示所需要的图片
第一步首先打开数据库,看有没有要查找的内容,有则继续执行,没有就退出
RS.Source = "select * from Info Where Name='" &sparaName &"'"
RS.ActiveConnection = "UID=PWD=DSN=TestDB"
RS.Open
If RS.EOF Then RS.cCose : Exit Sub
第二步,读出长二进制数据即图片数据,把它转换成图片文件, *** 作过程如下
MediaTemp = strPath &"picturetemp.tmp"
DataFile = 1
Open MediaTemp For Binary Access Write As DataFile
lngTotalSize = RS!MyPhoto.ActualSize
Chunks = lngTotalSize \ ChunkSize
Fragment = lngTotalSize Mod ChunkSize
ReDim Chunk(Fragment)
Chunk() = RS!MyPhoto.GetChunk(Fragment)
Put DataFile, , Chunk()
For i = 1 To Chunks
ReDim Chunk(ChunkSize)
Chunk() = RS!MyPhoto.GetChunk(ChunkSize)
Put DataFile, , Chunk()
Next i
Close DataFile
第三步,关闭数据库,这样就可以显示所要的图片了。
RS.Close
If MediaTemp = "" Then Exit Sub
Picture1.Picture = LoadPicture(MediaTemp)
If Picture1.Picture = 0 Then Exit Subj
2、向数据库中添加需要存储的图片
向数据库添加存储的图片是显示图片逆过程,只要掌握了显示图片的 *** 作,存储图片的 *** 作也就迎刃而解了,下面将 *** 作步骤介绍如下
第一步首先打开数据库,过程如下:
RS.Source = "select * from Info "
RS.CursorType = adOpenKeyset
RS.LockType = adLockOptimistic
RS.ActiveConnection = "UID=PWD=DSN=TestDB"
RS.Open
第二步,把要存储的图片转换成二进制长文件存入数据库中, *** 作过程如下
RS.AddNew
DataFile = 1
Open strPathPicture For Binary Access Read As DataFile
FileLen = LOF(DataFile) ' 文件中数据长度
If FileLen = 0 Then : Close DataFile : RS.Close : Exit Sub
Chunks = FileLen \ ChunkSize
Fragment = FileLen Mod ChunkSize
ReDim Chunk(Fragment)
Get DataFile, , Chunk()
RS!MyPhoto.AppendChunk Chunk()
ReDim Chunk(ChunkSize)
For i = 1 To Chunks
Get DataFile, , Chunk()
RS!MyPhoto.AppendChunk Chunk()
Next i
Close DataFile
第三步,更新纪录后,关闭数据库,就完成了数据图片到数据库的存储。
RS.Update
RS.Close
Set RS = Nothing
两种方法在使用方面各有所长,读者可以针对自己的情况做出合理的选择。
1、首先,你得做一个oledbconnection对象,这个对象有个连接字符串的属性,你需要设置2、做一个oledbcommand对象,这个对象有个 *** 作字符串(SQL语句)需要设置
3、打开oledbconnection对象
4、执行oledbcommand对象
5、关闭oledbconnection对象
程序结束,希望对你有帮助
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)