【发布时间】:2019-05-23 09:07:55
【问题描述】:
我正在从数据库中检索图片,我想将其显示到图片框。得到异常“不是有效的参数”
我已经用谷歌搜索过了,几乎没有解决我的问题。
while (reader.Read())
{
byte[] data = (Byte[])reader["P1"];
MemoryStream mStream = new MemoryStream();
mStream.Write(data, 0, Convert.ToInt32(data.Length));
Bitmap bm = new Bitmap(mStream, false);
mStream.Dispose();
pictureBox1.Image = bm;
}
它在“Bitmap bm = new Bitmap(mStream, false);”上有错误 我的 ms access 数据库中的数据有问题吗?
【问题讨论】:
-
如有需要我可以提供ms access数据库供您参考
-
你为什么不用
MemoryStream mStream = new MemoryStream(data);?这样你使用它可能会打开一个写流,它不能用作输入流来读取位图的数据。或者至少在从流中读取之前使用Seek(0, SeekOrigin.Begin);。 (使用new MemoryStream(data)时不需要) -
谢谢@Julo,我现在就试试你的建议......然后我会告诉你它是否有效。
-
试试 TheGeneral 的答案。它对
Bitmap类的使用更好(正确)。 -
@Dodong 请停止将数据库发送给人们:“寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定问题或错误以及在在问题本身中重现它所需的最短代码。”如果问题不是问题的一部分,那么您的问题对未来的读者没有任何价值。请阅读How to Ask 了解标题的重要性,因为“有人检查我的代码有什么问题吗...” 没有任何价值。
标签: c# bitmap ms-access-2010 memorystream