保存图片:将当前选择的显示在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;
}
//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;
}