2 wang123123a wang123123a 于 2015.06.23 13:33 提问

c# 关于图片转成二进制插入数据库问题

我数据库格式是用blob,数据库是mysql
不知道为什么数据库修改成功了,但是图片只显示到一定的位置就不显示了;,只是显示一半那样;
是不是blob存放不了呢?

    //图像转换成二进制
    private byte[] ImageToByte(Image Picture)
    {
        MemoryStream ms = new MemoryStream();
        if (Picture == null)
            return new byte[ms.Length];
        Picture.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
        byte[] BPicture = new byte[ms.Length];
        BPicture = ms.GetBuffer();
        return BPicture;
    }

这个是把二进制转为图片,并显示在pic上面
//获得图片
byte[] p1 = (byte[])dt.Rows[0][0];
MemoryStream imageStream1 = new MemoryStream(p1);
Image image1 = Image.FromStream(imageStream1);
pictureBox1.Image = image1;

SQL修改语句;
MySqlCommand comm = new MySqlCommand(update rw_count set zhutu=@imageByte,ztctu=@imageByte2 where bbid=" + teb_bbid.Text + " ", conn);

//把imageByte转成mediumblob类型储存
comm.Parameters.Add(new MySqlParameter("@imageByte", MySqlDbType.MediumBlob, p1.Length)).Value = p1;

1个回答

caozhy
caozhy   Ds   Rxr 2015.06.23 13:36

看下是不是你开的字段不够大。

Csdn user default icon
上传中...
上传图片
插入图片