求解,vb.net图片如何存入数据库

hanlizhen 2014-04-27 04:43:44
我用的是vs2005.
在access里建立了一列叫“图片”,格式为ole对象。用于存储图片转换完的二进制。
代码如下:
Dim MyStream As New System.IO.MemoryStream
'将图片框中的图片以BMP形式存入内存流中
Me.PictureBox1.Image.Save(MyStream, System.Drawing.Imaging.ImageFormat.Bmp)
Dim MyBytes(MyStream.Length) As Byte '声明数组
MyBytes = MyStream.ToArray()
这是转换成二进制的代码,应该木有问题。
但存储入access这句报错:sql = "INSERT INTO 幼儿信息(编号,姓名,年龄,身高,图片) VALUES('" & TextBox22.Text & "','" & TextBox1.Text & "','" & TextBox3.Text & "','" & TextBox4.Text & "'," & MyBytes & ")"
说是没有为类型“String”和“Byte的1维数组”定义运算符“&”。急!!!求解答,谢谢~
...全文
244 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wind_cloud2011 2014-04-27
  • 打赏
  • 举报
回复

Dim MyStream As New System.IO.MemoryStream
        Me.PictureBox1.Image.Save(MyStream, System.Drawing.Imaging.ImageFormat.Bmp)
        Dim MyBytes(MyStream.Length) As Byte     '声明数组
        MyBytes = MyStream.ToArray()
        Dim Sql As String = "INSERT INTO 幼儿信息(编号,姓名,年龄,身高,图片) VALUES(?,?,?,?,?)"
        Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb")
        Dim cmd As New OleDbCommand(Sql, cn)
        cmd.Parameters.Add(New OleDbParameter("编号", TextBox1.Text))
        cmd.Parameters.Add(New OleDbParameter("姓名", TextBox2.Text))
        cmd.Parameters.Add(New OleDbParameter("年龄", TextBox3.Text))
        cmd.Parameters.Add(New OleDbParameter("身高", TextBox4.Text))
        cmd.Parameters.Add(New OleDbParameter("图片", MyBytes))
        cn.Open()
        cmd.ExecuteNonQuery()
        cn.Close()


allanli 2014-04-27
  • 打赏
  • 举报
回复
直接用SQL不好操作吧,非要这样的话建议把字节数组转换成字符串(有相应类处理的),然后读取出来的时候再还原 但这样麻烦,直接使用DataTable更新的话就可以直接把数组赋值到DataRow的

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧