0
点赞
收藏
分享

微信扫一扫

C# 利用datatable将sqlserver中的Image取出来


先把sqlserver数据库一个表装载到datatable里面,然后进行如下操作

Bitmap IMG!=null;
                Bitmap IMG2=null;
                MemoryStream ms=null;
 
                 byte[] b1 = (byte[])dt.Rows[0]["照片1"]; 
                  byte[] b2 = (byte[])dt.Rows[0]["照片2"]; 
                  ms = new MemoryStream(b1);
                 IMG1 = new Bitmap(ms);//取出照片1
                  ms = new MemoryStream(b2);
                IMG2= new Bitmap(ms);//取出照片2
                 ms.Flush();
 
                ms.Close();


网上还有好的办法。例如

存:

public void Save()

 {

using(System.IO.FileStream stream = new System.IO.FileStreamfile,System.IO.FileMode.Open,System.IO.FileAccess.Read)

 {
byte[] buffer = new byte[stream.Length]; 
 stream.Read(buffer, 0, (int)stream.Length); 
 stream.Close(); 
string strName = System.IO.Path.GetFileNameWithoutExtension(file); 
 SqlCommand cmd = new SqlCommand("Insert into Temp(name,photo) values(@name,@image)", sqlConn); 
 cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = strName; 
 cmd.Parameters.Add("@image", SqlDbType.Image).Value = buffer; 
 cmd.ExecuteNonQuery();

 }

 }



取:

public void GetImage()

 {

 SqlCommand cmd = new SqlCommand(@"SELECT name, photo FROM Temp", sqlConn); 
 sqlConn.Open(); 
 SqlDataReader reader = cmd .ExecuteReader(); 
if (reader.Read()) 
 { 
 image_filename= (string) reader.GetValue(0); 
byte[] image_bytes = (byte[]) reader.GetValue(1); 
 MemoryStream ms = new MemoryStream(image_bytes); 
 Bitmap bmap = new Bitmap(ms); 
return bmap; 

 }

}

举报

相关推荐

0 条评论