標籤:
最近做了個小項目,需要把圖片資訊直接存放在資料庫,而不是把圖片路徑存放資料庫中,具體做法是
資料庫表中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;
C#直接將圖片資訊存放在資料庫