到目前为止,这是我在数据库中放置picturebox1
图片所做的工作,但现在我收到了这个错误:
无法将
System.DBNull
类型的对象转换为System.Byte[]
类型。
此平台已有的解决方案无效。
Image img;
byte[] bytimg = (byte[])dt.Rows[0]["Picture"];
//convert byte of imagedate to Image format
using (MemoryStream ms = new MemoryStream(bytimg, 0, bytimg.Length))
{
ms.Write(bytimg, 0, bytimg.Length);
img = Image.FromStream(ms, true);
pictureBox1.Image = img;
}
答案 0 :(得分:4)
使用以下方法检查:
if(dt.Rows[0]["Picture"] != System.DBNull.Value)
{
...
}
您也可以添加一些其他验证:
if(dt != null && dt.Rows != null && dt.Rows.Count > 0
&& dt.Rows[0]["Picture"] != System.DBNull.Value)
{
...
}
很高兴为您服务!
答案 1 :(得分:0)
将您的代码更改为:
Image img;
if(dt.Rows[0] != System.DBNull.Value)
{
byte[] bytimg = (byte[])dt.Rows[0]["Picture"];
//convert byte of imagedate to Image format
using (MemoryStream ms = new MemoryStream(bytimg, 0, bytimg.Length))
{
ms.Write(bytimg, 0, bytimg.Length);
img = Image.FromStream(ms, true);
if (img != null)
{
pictureBox1.Image = img;
}
}
}