VB中如何把图片转换成二进制数存到数据库中?

VB中如何把图片转换成二进制数存到数据库中?,第1张

Dim Mst As Stream

Dim rs As ADODB.Recordset

----------------------------------------

Set Mst = New ADODB.Stream

Mst.Type = adTypeBinary'二进制类型

Mst.Open

Mst.LoadFromFile Mystr '加载图片,Mystr为图片路径

----------------------------------------

rs.fields("images")= Mst.Read '保存到数据库

这是保存图片的主要代码

在access数据库里将字段的类型设置为ole对象

Public img As Byte() '图片处理用的字节数组

img=My.Computer.FileSystem.ReadAllBytes(filePath)'filePath是你图片文件的路径

剩下的就是数据库插入 *** 作了

 Dim cn As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0Data Source=Data.mdb")

                Dim comm As OleDb.OleDbCommand

                comm = New OleDb.OleDbCommand( _

                   "INSERT INTO Photo(BuFan_F,PhotoNo,Photo) Values('" & Me.CobBuFan.Text.Trim & "','" & Me.txtNo.Text.Trim & "',@image)", cn)

                '向数据库添加存储了图片数据的二进制数组

                comm.Parameters.Add("@image", _

                          OleDb.OleDbType.Binary, img.Length).Value = img

                If cn.State = ConnectionState.Closed Then cn.Open() '打开数据库连接

                comm.ExecuteNonQuery() '执行数据库命令

                If cn.State = ConnectionState.Open Then cn.Close() '关闭数据库连接

                MessageBox.Show("图片成功保存到数据库", "完成", MessageBoxButtons.OK, MessageBoxIcon.Information)

图片是可以存储到数据库中的,只是把它转化成二进制数据保存进去。但是这样的方式,将会使得数据库异常庞大。占用数据库资源。所以并不是主流的存储方式。

通常我们存储图片进入数据库的做法是,保存一个地址给数据库,而图片是采用别的方法存储到服务器磁盘中的。

比如,使用FTP方式将图片保存到服务器D:\PIC文件夹。在服务器数据库中只要记录D:\PIC\1.JPG。那么读取图片的时候数据库中读取图片文件名或地址,那么就可以在FTP中取得。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存