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中取得。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)