如何将数据库中的图片(二进制),读出并显示在界面的Image控件[VB6.0]

如何将数据库中的图片(二进制),读出并显示在界面的Image控件[VB6.0],第1张

摘 要 本文以VB6与Access97作为开发工具,介绍了图像在数据库中的存储与显示技术。

关键词 数据库,数据控件,二进制,图像存储,图像显示,ADODB,Recordset

数据库是数据管理的最新技术,是计算机科学的重要分支,是现代计算机信息系统和计算机应用的基础和核心。在科学技术高速发展的今天,在信息资源无处不在、无处不用,已成为各部门的重要财富的时候,对于从事程序开发的人员来说显得尤为重要。

如今,对数据库的 *** 作不仅仅满足于对字符和数字的单一 *** 作,图像的存储与显示已显得尤为重要。下面作者将以VB60与Access97作为开发工具,分别介绍两种图像显示与存储的方法。

利用数据控件和数据绑定控件

利用这种方法,不写或写少量代码就可以构造简单的数据库应用程序,这种方法易于被初学者接受。在举例之前,先把数据绑定功能简要的说明一下,凡是具有DataSource属性的控件都是对数据敏感的,它们都能通过数据控件直接使用数据库里的数据。比如CheckBox Control , ComboBox Comtrol , TextBox Comtrol , PictureBox Control ,Image Comtrol … 因为这种方式涉及到的知识点比较少,也比较容易理解,不多作说明,现直接介绍编程步骤。

1、从数据库中显示所需要的

首先,添加一个Data数据控件,设置它的DatabaseName和RecordSource属性,

strPath = AppPath

If Right(strPath, 1) <> "\" Then

strPath = strPath & "\"

MyDataDatabaseName = strPath & "ExampleDBmdb" '数据库存地址

MyDataRecordSource = "Info" '表名

第二步,添加Image控件用来显示,设置它的DataSource和DataField属性。例如本例中: Image1DataSource="MyData"和Image1DataField=" MyPhoto" 。然后设置其它具有数据绑定功能的控件用来显示所要的其它内容,经过这两步的 *** 作,运行程序就可以显示你要的数据了。

2、向数据库中添加需要存储的

首先,利用数据控件所具有的AddNew属性,添加一个按钮,双击后添加如下代码MyDataRecordsetAddNew

第二步,为Image控件指定路径Image1Picture = LoadPicture("路径"),经过这两步的 *** 作,就可以向数据库中添加了。

这种方法最简单快捷,要写的代码量很少。但是这种方法在运行速度和灵活性方面有一定的限制,适合于初学者和一些简单的应用,要想灵活多变的显示图像,下面介绍的方法或许更适应您的要求。

利用编写代码实现的存储与显示

这种方法相对于方法一来说,代码量大,但是它 *** 作灵活,能够满足多样形式下的 *** 作,受到更多编程者的青睐。但是涉及到的知识面相对要多一些,不仅要掌握数据库的 *** 作方法,还要二进制文件的读写作进一步的了解。关于数据库及二进制文件的基本 *** 作很多参考书上都介绍的比较详细,需要时请查阅即可。在编程之前把本部分用到的变量说明如下:

Dim RS As New ADODBRecordset

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、从数据库中显示所需要的

第一步首先打开数据库,看有没有要查找的内容,有则继续执行,没有就退出

RSSource = "select from Info Where Name='" & sparaName &"';"

RSActiveConnection = "UID=;PWD=;DSN=TestDB;"

RSOpen

If RSEOF Then RScCose : Exit Sub

第二步,读出长二进制数据即数据,把它转换成文件, *** 作过程如下

MediaTemp = strPath & "picturetemptmp"

DataFile = 1

Open MediaTemp For Binary Access Write As DataFile

lngTotalSize = RS!MyPhotoActualSize

Chunks = lngTotalSize \ ChunkSize

Fragment = lngTotalSize Mod ChunkSize

ReDim Chunk(Fragment)

Chunk() = RS!MyPhotoGetChunk(Fragment)

Put DataFile, , Chunk()

For i = 1 To Chunks

ReDim Chunk(ChunkSize)

Chunk() = RS!MyPhotoGetChunk(ChunkSize)

Put DataFile, , Chunk()

Next i

Close DataFile

第三步,关闭数据库,这样就可以显示所要的了。

RSClose

If MediaTemp = "" Then Exit Sub

Picture1Picture = LoadPicture(MediaTemp)

If Picture1Picture = 0 Then Exit Subj

2、向数据库中添加需要存储的

向数据库添加存储的是显示逆过程,只要掌握了显示的 *** 作,存储的 *** 作也就迎刃而解了,下面将 *** 作步骤介绍如下

第一步首先打开数据库,过程如下:

RSSource = "select from Info ;"

RSCursorType = adOpenKeyset

RSLockType = adLockOptimistic

RSActiveConnection = "UID=;PWD=;DSN=TestDB;"

RSOpen

第二步,把要存储的转换成二进制长文件存入数据库中, *** 作过程如下

RSAddNew

DataFile = 1

Open strPathPicture For Binary Access Read As DataFile

FileLen = LOF(DataFile) ' 文件中数据长度

If FileLen = 0 Then : Close DataFile : RSClose : Exit Sub

Chunks = FileLen \ ChunkSize

Fragment = FileLen Mod ChunkSize

ReDim Chunk(Fragment)

Get DataFile, , Chunk()

RS!MyPhotoAppendChunk Chunk()

ReDim Chunk(ChunkSize)

For i = 1 To Chunks

Get DataFile, , Chunk()

RS!MyPhotoAppendChunk Chunk()

Next i

Close DataFile

第三步,更新纪录后,关闭数据库,就完成了数据到数据库的存储。

RSUpdate

RSClose

Set RS = Nothing

两种方法在使用方面各有所长,读者可以针对自己的情况做出合理的选择。

方法很容易实现的.和楼上的不太一样.

DataTable dt=GetImage();//假设 取出放到DataTable里。

string _img='<img src="+dtRows[0]["path"]ToString()+" alt="" />';

直接输入html标签就可以了。

table里面用while循环输出显示数据库获取到的路径后显示。

在jsp中的一个table的多个cell中想要动态显示从数据库中读出来的binary data类型的。

Table是由一些被称之为单元格的矩形框,按照从左到右从上到下的顺序排列到一起组成的。

你数据库里存放的是的名称吧,不包含url地址,所以,取出来的也不包含。

你可以把放的路径定义成一个常量,比如$imgPath='>

实现的功能为从服务器获取数据,在布局页面上显示。由于的个数是不确定的,因此采用在布局页面中定义多个ImageView来显示是不合理的。

(一)首先定义布局

android:id="@+id/id_layout_movie"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

/>

(二)加载显示时获取到布局文件

RelativeLayout rl_Movie = (RelativeLayout) findViewById(Ridid_layout_movie);

(三)依次循环服务器获取的数据,一张一张设置显示的位置

//newWidth为显示的宽度,newHeight为显示的高度

RelativeLayoutLayoutParams lp1 = new RelativeLayoutLayoutParams( newWidth, newHeight);

设置lp1leftMargin和lp1topMargin的值

(四)最后设置rl_MovieaddView(iv, lp1)将加入布局文件中

以上就是关于如何将数据库中的图片(二进制),读出并显示在界面的Image控件[VB6.0]全部的内容,包括:如何将数据库中的图片(二进制),读出并显示在界面的Image控件[VB6.0]、c#中怎么将从oracle数据库取出的图片用html显示出来来段代码学习一下、table里面怎么显示数据库获取到的图片路径后显示图片等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10204685.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存