Sql Server 的例子 --------------------------------------------------------- FileInfo fi = new FileInfo(this.strFileName); int imgdatalen=(int)fi.Length; imgdata = new byte[imgdatalen]; Stream imgdatastream=fi.OpenRead(); int n=imgdatastream.Read(imgdata,0,imgdatalen); string strInsert = "Insert MBInfor(FPic) values(@ImageData)"; System.Data.SqlClient.SqlCommand cmdInsert = new System.Data.SqlClient.SqlCommand(strInsert,AccessDb.SQLConn); System.Data.SqlClient.SqlParameter paramImageData = new System.Data.SqlClient.SqlParameter("@ImageData",System.Data.SqlDbType.Image); paramImageData.Value = imgdata; cmdInsert.Parameters.Add(paramImageData); cmdInsert.ExecuteNonQuery();
读取 -------------------------------------- FileStream myStream = new FileStream("temp",FileMode.Create); byte[] mydata = ((byte[])this.dsMbinfor.Tables["MBInfor"].Rows[i]["FPic"]);//从数据库中读取的byte数组 foreach(byte a in mydata) { myStream.WriteByte(a); } Image myImage=Image.FromStream(myStream) ; myStream.Close();
这种办法比较简单,主要针对比较大的图片。
2、用Image字段存储:
跟liujia_0421说的那样,先转成二进制流,然后再存库...取出时,将二进制流再转回来..
---------------------------------------------------------
FileInfo fi = new FileInfo(this.strFileName);
int imgdatalen=(int)fi.Length;
imgdata = new byte[imgdatalen];
Stream imgdatastream=fi.OpenRead();
int n=imgdatastream.Read(imgdata,0,imgdatalen);
string strInsert = "Insert MBInfor(FPic) values(@ImageData)";
System.Data.SqlClient.SqlCommand cmdInsert = new System.Data.SqlClient.SqlCommand(strInsert,AccessDb.SQLConn);
System.Data.SqlClient.SqlParameter paramImageData = new System.Data.SqlClient.SqlParameter("@ImageData",System.Data.SqlDbType.Image);
paramImageData.Value = imgdata;
cmdInsert.Parameters.Add(paramImageData);
cmdInsert.ExecuteNonQuery();
--------------------------------------
FileStream myStream = new FileStream("temp",FileMode.Create);
byte[] mydata = ((byte[])this.dsMbinfor.Tables["MBInfor"].Rows[i]["FPic"]);//从数据库中读取的byte数组
foreach(byte a in mydata)
{
myStream.WriteByte(a);
}
Image myImage=Image.FromStream(myStream) ;
myStream.Close();