
先把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; } }