【发布时间】:2015-09-10 17:23:22
【问题描述】:
我正在尝试从 Access 数据库中读取图像。它读取字节,但当我尝试使用Image.FromStream 时,它给出了未处理的 System.ArgumentException。
这是我的代码:
private Image ReadImageFromDB()
{
Image fetchedImg;
if (rownumber >= 0)
{
byte[] fetchedimgbytes = (byte[])localDataTable.Rows[5]["Object"];
MemoryStream stream = new MemoryStream(fetchedimgbytes);
fetchedImg= Image.FromStream(stream);
return fetchedImg;
}
else
{
MessageBox.Show("no image");
return null;
}
}
【问题讨论】:
-
您如何与我们分享例外情况。它肯定会帮助我们调试。现在它可以是任何东西,
Rows[5]可能不存在。fetchedimgbytes可能为空,stream可能不代表图像。你并没有真正让我们继续前进。 -
您在哪一行得到未处理的异常?你用什么连接到数据库?你如何填充结果集?
-
System.Drawing.dll中发生的异常类型为'System.ArgumentException'
-
如果它是位图图像,我如何从数据库中读取它
-
MSDN 说,当“流没有有效的图像格式”或“流”为空时,会引发 FromStream 方法的 ArgumentException。我认为这是第一种选择。您如何将图像保存到数据库中?