在winform中从sqlserver2000 image类型字段读取图片出错,急急急!!!
在winform中从sqlserver2000 image类型字段读取图片出错,不知道怎么办了,急啊,解决了马上给分
以下是原代码:
//读取图片
Byte[] mybyte = new Byte[];
mybyte = (byte[])read[ "pht_photo "];
MemoryStream ms = new MemoryStream(mybyte);
Image img = Image.FromStream(ms);
picBox.Image = img;
ms.Close();
以下是出错信息
未处理的“
System.ArgumentException”类型
其他信息: 使用了无效参数(Parameter is not valid.)。
Help!Help!Help!
------解决方案--------------------read[ "pht_photo "];
------解决方案--------------------CHENYI 是不是 陈亮啊 ?
MemoryStream streamMemory;
BinaryFormatter formatter = new BinaryFormatter();
byte [] binaryData=Convert.FromBase64String(read[ "pht_photo "]);
streamMemory = new MemoryStream(binaryData);
data = formatter.Deserialize(streamMemory);
picBox.Image = (Image)Data;
------解决方案--------------------使用ImageConverter 类来转换就可以了,
使用ImageConverter.ConvertFrom ,参数里的Value是从数据库中取出的Byte[]
------解决方案--------------------你可以直接:
picBox.Image = Image.FromFile(你要的照片路径);
------解决方案--------------------楼主用的是vs2003还是vs2005,若2005的话很简单的.
------解决方案--------------------=================================
其实 光看你的代码 是没有任何错误的....
我用3 中不同的方法 将图片保存到 数据库.
.用你写的代码来调用..显示图片...结果 有一种方法可行..
说明能不能显示 图片.或者 报不报错..和你 如何 写入图片 也有关系...
================
我这里有一段 代码..是写入图片和读取图片 .....
读取的时候 .和你的 代码 几乎 一摸一样.但我能把他 读取出来.......主要看看我们写入图片的时候 的区别...
因为写入图片的方法太多了 ..
==========读取图片========
SqlConnection conn = new SqlConnection( "Server=.;Database=Northwind;Integrated Security=SSPI ");
string strSql = "select a from c ";
SqlCommand cmd = new SqlCommand(strSql, conn);
conn.Open();
SqlDataReader reader = cmd.ExecuteReader();
reader.Read();
byte[] bytes = (byte[])reader[ "a "];
MemoryStream ms = new MemoryStream(bytes);
Image image = Image.FromStream(ms);
pictureBox1.Image = image;
reader.Close();
conn.Close();
===============================写入图片=============
OpenFileDialog openfileDialog = new OpenFileDialog();
openfileDialog.Filter = "Picture Files(*.jpg)|*.jpg|Bmp(*.bmp)|*.bmp|All Files(*.*)|*.* ";
FileStream fileStream;
openfileDialog.ShowDialog();
string filepath = openfileDialog.FileName;
//获得图象并把图象转换为byte[]
fileStream = new FileStream(filepath, FileMode.Open, Fil