C#图片存入数据库及其读出显示

时间:2023-12-17 14:23:14

<1>将图片转换成二进制插入数据库

FileStream fs = new FileStream("D:\\Add.ico",FileMode.Open);

byte[] imagebytes = new byte[fs.Length];

BinaryReader br = new BinaryReader(fs);

imagebytes = br.ReadBytes(Convert.ToInt32(fs.Length));   //将图片转换成二进制字符串

string s = "Data Source=A3135;Initial Catalog=mydb1;Integrated Security=True";  //连数据库字符串

SqlConnection con = new SqlConnection(s);

con.Open();

string str = " insert into [picture](Line,Data) values(@Line,@Data)";  //插入picture表中字符串

SqlCommand cmd = new SqlCommand(str, con);

cmd.Parameters.AddWithValue("@Line", 1);

cmd.Parameters.AddWithValue("@Data", imagebytes);  //将二进制流插入数据库中

cmd.ExecuteNonQuery();

con.Close();

<2>将二进制还原为图片

MemoryStream ms = new MemoryStream(photo);

Bitmap bmpt = new Bitmap(ms);   //将二进制流转化成图片格式

SickPicture.Image = bmpt;   //SickPicture为pictureBox控件名称

<3>依据图片路径显示图片

Image image = Image.FromFile(PicturePath);  //直接打开会出现再次添加时提示图片资源占用

Image bmp = new Bitmap(image);

SickPicture.Image = bmp;

image.Dispose();

<4>PictureBox绑定图片的等比缩放

将pictureBox的SizeMode属性设置为StretchImage