当前位置: 代码迷 >> VB Dotnet >> 求解,vb.net图片怎么存入数据库
  详细解决方案

求解,vb.net图片怎么存入数据库

热度:147   发布时间:2016-04-25 02:20:53.0
求解,vb.net图片如何存入数据库
我用的是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维数组”定义运算符“&”。急!!!求解答,谢谢~
------解决方案--------------------
直接用SQL不好操作吧,非要这样的话建议把字节数组转换成字符串(有相应类处理的),然后读取出来的时候再还原
但这样麻烦,直接使用DataTable更新的话就可以直接把数组赋值到DataRow的
------解决方案--------------------

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()


  相关解决方案