如何在VS2005中用C#语言使用SqlDataReader将数据库中的image字段显示图片到picturebox控件中
4个回答
展开全部
查询image字段的内容和reader的内容就不写了.估计你也会写.
读出image内容:
SqlDataReader reader = cmd.ExecuteReader();
byte[] bImg=(byte[])reader["Image字段"];
然后用下面的代码转换一下即可
//从byte[]中得到图片Image
public static Image GetImage(byte[] bData)
{
try
{
using (Stream fStream = new MemoryStream(bData.Length))
{
BinaryWriter bWriter = new BinaryWriter(fStream);
bWriter.Write((byte[])bData);
bWriter.Flush();
System.Drawing.Bitmap bitMap = new System.Drawing.Bitmap(fStream);
bWriter.Close();
fStream.Close();
Image iImage = System.Drawing.Image.FromHbitmap(bitMap.GetHbitmap());
return iImage;
}
}
catch (System.IO.IOException e)
{
throw new Exception(e.Message + "Read image data error!");
}
}
得到的内容是一个Image
只需要将Image赋值给picturebox就可以了
Image iImage = GetImage(bImg);
picturebox.Image = iImage;
读出image内容:
SqlDataReader reader = cmd.ExecuteReader();
byte[] bImg=(byte[])reader["Image字段"];
然后用下面的代码转换一下即可
//从byte[]中得到图片Image
public static Image GetImage(byte[] bData)
{
try
{
using (Stream fStream = new MemoryStream(bData.Length))
{
BinaryWriter bWriter = new BinaryWriter(fStream);
bWriter.Write((byte[])bData);
bWriter.Flush();
System.Drawing.Bitmap bitMap = new System.Drawing.Bitmap(fStream);
bWriter.Close();
fStream.Close();
Image iImage = System.Drawing.Image.FromHbitmap(bitMap.GetHbitmap());
return iImage;
}
}
catch (System.IO.IOException e)
{
throw new Exception(e.Message + "Read image data error!");
}
}
得到的内容是一个Image
只需要将Image赋值给picturebox就可以了
Image iImage = GetImage(bImg);
picturebox.Image = iImage;
展开全部
如果你image里面存储的是路径,那么设置picturebox的Imagelocation属性等于image就行了。
也就是picturebox1.ImageLocation = image;
也就是picturebox1.ImageLocation = image;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没试过用image字段保存图片,一般都用string类型,把图片放到程序的跟目录PIC文件夹里,然后保存相对路径到字段里,再读取出来赋值给picturebox。我想那个也应该差不多吧。。。呵呵。。。试试看。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
yourPictureBox.Image = new Bitmap(new MemoryStream(((byte[])yourDataReader["yourImage"])));
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询