保存圖片到數據庫

保存圖片:將當前選擇的顯示在PictureBox中的圖片轉換成二進制流,存入數據庫中
//ImageToByte(Image img) 將圖片轉換成二進制代碼,然後存儲在數據庫中
public static byte[] ImageToByte(Image img)
{
byte[] byt = null;
ImageConverter imgCvt = new ImageConverter();
object obj = imgCvt.ConvertTo(img, typeof(byte[]));
byt = (byte[])obj;
return byt;
}
將返回的二進制流用參數的形式存入數據庫
comm.Parameters.Add("@Photo", SqlDbType.Image);
comm.Parameters["@Photo"].Value = byt;
讀取圖片:先將後臺數據庫中的圖象二進制流轉換成圖象文件,然後再賦值給圖片框
private void ShowPic()
{
string strSql = "Select GdsPhoto from AchGoods where GdsID = '"+ txtID.Text +"'";
comm.CommandText = strSql;
conn.Open();
SqlDataReader reader = comm.ExecuteReader();
//判斷讀取是否成功
if(reader.Read())
{
if (reader["GdsPhoto"] == DBNull.Value)
{
reader.Close();
picGoods.Image = null;
return;
}

byte[] data = ((byte[])reader["Photo"]);
picGoods.Image = CommonClass.CommonFun.ByteToImage(data);
picGoods.Refresh();
reader.Close();
}
else
{
MessageBox.Show("沒有成功讀入數據!") ;
}

conn.Close();
}
//ByteToImage(byte[] byt)讀取數據庫中的二進制文件將其轉換爲Image
public static Image ByteToImage(byte[] bytImage)
{
Image img = null;
ImageConverter imgCvt = new ImageConverter();
object obj = imgCvt.ConvertFrom(bytImage);
img = (Image)obj;
return img;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章