C#直接将图片信息存放在数据库

最近做了个小项目,需要把图片信息直接存放在数据库,而不是把图片路径存放数据库中,具体做法是

 数据库表中photo的字段类型为image类型

string filepath = @"C:\Users\Administrator\Desktop\照片\1.jpg";  //本地图片的路径
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
int length = Convert.ToInt32(fs.Length);
byte[] b = new byte[length];
fs.Read(b, 0, length);
string sql = "update lkzpb set photo=@photo,zjphoto=@photo where lk_id=" + count;
SqlParameter pms = new SqlParameter("@photo", SqlDbType.Image);
pms.Value = b;

//执行更新数据库的操作,sqlhelper是封装好的对数据库的操作
result += SqlHelper.ExecuteNonQuery(sql, pms);

 

执行完以上操作就把图片存放到数据库中相应的字段了

 

下面将获取数据库中的图片信息并将其显示在picturebox中

 

首先在winform界面上添加一个picturebox,名字为picturebox1

string strSearch = "select * from lkzpb where lk_id=1";

//将查询到的数据存放在一个DataTable中
DataTable dt = SqlHelper.ExecuteDataTable(strSearch);

//获取数据库中photo字段的信息,将其强转为byte[]数组类型,在dt中第0行第一列为photo的信息
byte[] bytes = (byte[])dt.Rows[0][1];


Stream stream = new MemoryStream(bytes);

int length = Convert.ToInt32(stream.Length);
byte[] insertbte = new byte[length];
stream.Read(insertbte, 0, length);

Image image = Image.FromStream(stream, true);

//在picturebox中显示图片
pictureBox1.Image = image;

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。