public void SaveImage(string MID, OpenFileDialog openF)//将图片以二进制存入数据库中
{
string strimg = openF.FileName.ToString(); //记录图片的所在路径
FileStream fs = new FileStream(strimg, FileMode.Open, FileAccess.Read); //将图片以文件流的形式进行保存
BinaryReader br = new BinaryReader(fs);
byte[] imgBytesIn= br.ReadBytes((int)fs.Length); //将流读入到字节数组中
conn.Open();
StringBuilder strSql = new StringBuilder();
strSql.Append("update tb_employee Set employeePhoto=@Photo where employeeID=" + MID);
SqlCommand cmd = new SqlCommand(strSql.ToString(), conn);
cmd.Parameters.Add("@Photo", SqlDbType.Binary).Value = imgBytesIn;
cmd.ExecuteNonQuery();
conn.Close();
}
public void Get_Image(string ygname,PictureBox pb)//将图片从数据库中取出
{
byte[] imagebytes = null;
conn.Open();
SqlCommand com = new SqlCommand("select * from tb_employee where employeeID='" + ygname + "'", conn);
SqlDataReader dr = com.ExecuteReader();
while (dr.Read())
{
imagebytes = (byte[])dr.GetValue(11);
}
dr.Close();
conn.Close();
MemoryStream ms = new MemoryStream(imagebytes);
Bitmap bmpt = new Bitmap(ms);
pb.Image = bmpt;
}
public void Read_Image(OpenFileDialog openF, PictureBox MyImage) //显示选择的图片
{
openF.Filter = "*.jpg|*.jpg|*.bmp|*.bmp"; //指定OpenFileDialog控件打开的文件格式
if (openF.ShowDialog() == DialogResult.OK) //如果打开了图片文件
{
try
{
MyImage.Image = System.Drawing.Image.FromFile(openF.FileName); //将图片文件存入到PictureBox控件中
}
catch
{
MessageBox.Show("您选择的图片不能被读取或文件类型不对!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
}
改进:
/// <summary> /// 从数据库中取出图片; /// 参数:“控件”,“图片大小”,“sql相关参数” /// </summary> /// <param name="pbox"></param> public void GetImage(PictureBox pbox, Size imageSize, string sql, SqlParameter[] sp, int columnIndex) { byte[] imageByte = null; SqlDataReader reader = this.ExecuteReader(sql, sp); while (reader.Read()) { imageByte = (byte[])reader.GetValue(columnIndex); } reader.Close(); MemoryStream ms = new MemoryStream(imageByte); // Bitmap bmpt = new Bitmap(ms); // pbox.Image = bmpt;//图片绑定到控件
Bitmap bm = (Bitmap)Image.FromStream(ms); ms.Close();
Bitmap bp = new Bitmap(bm, imageSize);//将指定图片缩放到指定大小 pbox.Width = imageSize.Width; pbox.Height = imageSize.Height; pbox.Image = bp;//图片绑定到控件 }