问题描述
现在我有一个程序,是用VB做的,其中人员表中有人员照片字段,字段格式为image格式,现在我需要用C#程序调用这个表,想把人员照片显示出来,但是怎么也显示不出来,我的程序如下:yte[]imgb=(byte[])row["b_phote"];//b_phote为照片字段,MemoryStreammemStream=newMemoryStream(imgb,true);try{PsnPic.Image=Image.FromStream(memStream);memStream.Close();}catch{//...................}是不是我程序有问题?
解决方案
解决方案二:
你不应该关闭stream.需要保持这个流打开着。memStream.Close();去掉试试看。
解决方案三:
memStream.Close();去掉了,还是不行啊
解决方案四:
怎么没人回答呢?高手都到哪儿去了?
解决方案五:
Bitmap实现.
解决方案六:
winform/wpf的话绑定到PictureBox或Image控件就可以直接显示数据库image/blob字段里的图片了。
解决方案七:
看看imgb里有没数据
解决方案八:
数据库里保存的地址是否正确?你看一下图片地址和你数据库里字段地址是不是一样。不一样的话肯定显示不出来了
解决方案九:
debug调试一下看看是不是取出数据来了。
解决方案十:
byte[]imgb=((byte[])myDataSet.Tables[0].Rows[0]["b_phote"]);MemoryStreammemStream=newMemoryStream(imgb,true);PsnPic.Image=Image.FromStream(memStream);到了最后一句话就出错了,错误如下:未处理的“System.ArgumentException”类型的异常出现在system.drawing.dll中。其他信息:使用了无效参数。
解决方案十一:
byte[]imgb=((byte[])myDataSet.Tables[0].Rows[0]["b_phote"]);MemoryStreammemStream=newMemoryStream(imgb,true);//PsnPic.Image=Image.FromStream(memStream);memStream.Write(imgb,0,imgb.Length);Bitmapmyimge=newBitmap(memStream);PsnPic.Image=myimge;用了Bitmap也还是不行,执行到Bitmapmyimge=newBitmap(memStream);出现同样的错误:未处理的“System.ArgumentException”类型的异常出现在system.drawing.dll中。其他信息:使用了无效参数。
解决方案十二:
可能是类型不正确,你看可不可以把数据库的图片读到本地再用控件读取。我C#有一段这样的程序,你看看。DataRowdr=fm.ReadFile(int.Parse(this.lsvFile.FocusedItem.Tag.ToString()));byte[]buff=(byte[])dr["strData"];FileStreamfs=newFileStream(System.Windows.Forms.Application.StartupPath+"\监管措施\"+dr["strFilename"].ToString(),FileMode.Create);fs.Write(buff,0,buff.Length);fs.Flush();fs.Close();//打开文件System.Diagnostics.Processproc=newSystem.Diagnostics.Process();proc.StartInfo.FileName=System.Windows.Forms.Application.StartupPath+"\监管措施\"+dr["strFilename"].ToString();proc.Start();
解决方案十三:
returnnewBitmap(newMemoryStream(imageByte));
解决方案十四:
Imageimage=Class1.ByteToImg(imgb);publicstaticBitmapByteToImg(byte[]imageByte){if(imageByte==null){returnnull;}try{returnnewBitmap(newMemoryStream(imageByte));}catch{returnnull;}}试下
解决方案十五:
存储的时候的问题存得不正确,取出来当然不对。