最近做了个小项目,需要把图片信息直接存放在数据库,而不是把图片路径存放数据库中,具体做法是
数据库表中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 [email protected],[email protected] 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;