byte[] imageData = null;
long byteSize = 0;
byteSize = _reader.GetBytes(_reader.GetOrdinal(sFieldName), 0, null, 0, 0);
imageData = new byte[byteSize];
long bytesread = 0;
int curpos = 0, chunkSize = 500;
while (bytesread < byteSize)
{
// chunkSize is an arbitrary application defined value
bytesread += _reader.GetBytes(_reader.GetOrdinal(sFieldName), curpos, imageData, curpos, chunkSize);
curpos += chunkSize;
}
byte[] imgData = imageData;
MemoryStream ms = new MemoryStream(imgData);
Image oImage = Image.FromStream((Stream)ms);
return oImage;
代码在"Image oImage = Image.FromStream((Stream)ms);"
行执行时产生问题.....此行显示"Parameter is not valid"
消息.......为什么会出现?帮我。我想从数据库中检索图像....我在C#窗口vs05上工作.....任何人都可以帮助我吗? byte []包含值。一切正常,只有当这一行执行时才会出现问题。
答案 0 :(得分:1)
简单的if语句应该在创建内存流之前解决您的问题
if (imageData.Length != 0)
{
MemoryStream ms = new MemoryStream(imageData);
Image oImage = Image.FromStream((Stream)ms);
return oImage;
}
return null;
答案 1 :(得分:0)
我无法真正发现此代码中的任何错误(除了没有处理MemoryStream之外,并且在将其传递给Stream
方法时没有必要将其强制转换为Image.FromStream
;但是那些不应该导致你的错误)。为了试图找到错误,我会执行以下操作: