C# Win Form 編程實現圖片的數據庫存儲

一般來講涉及到圖片的存儲,普遍做法是採用數據庫存儲圖片在服務器端的存儲路徑(物理路徑+文件名稱)。在需要sh使用圖片時從數據庫讀取路徑之後進行圖片的操作即可。該方法的主要問題在於存儲圖片時需要單獨編寫文件的上傳功能,需要一定的代碼編寫量。於此同時大部分關係型數據庫本身也包含了image圖片類型。允許開發者將圖片作為數據類型直接存儲到數據庫,針對海量數據存儲,普遍認為該方法效率較低、成本較高。但對數據量較小時,使用數據庫進行圖片的存儲也是可以選擇使用的方法。該方法直接讀取圖片資源寫入數據庫即可,與第一種方法相比較避免了單獨編寫圖片上傳的操作,減少了代碼編寫量。本文主要對數據庫存儲圖片實現進行說明,為初學者簡單講解實現的核心操作與代碼。為演示操作給出數據存儲的form窗口,窗口如下:

C# Win Form 編程實現圖片的數據庫存儲

演示Form


如上圖所示,我們希望藉助數據表存儲選手註冊信息,在所存儲的字段中包含了用戶的照片,該字段數據類型選擇使用image。通過openfiledialog方法選擇照片並將路徑寫入對應TextBox中。其中選擇按鈕消息處理實現代碼如下:

 OpenFileDialog dia = new OpenFileDialog();
if(dia.ShowDialog()==DialogResult.OK)
{
this.userpic.Text = dia.FileName;
}

註冊按鈕實現部分主要是獲取窗口各控件值,在進行判斷之後連接數據庫,實現各類數據的存儲。提交註冊按鈕事件部分代碼描述如下:

C# Win Form 編程實現圖片的數據庫存儲

讀取圖片並存儲數據庫


以上給出圖片存儲數據庫的方法、思路與部分核心代碼,在實現數據存儲之後,可根據實際情況調用數據庫中存儲的Image圖片資源並進行顯示。本文給出參考Form對圖片資源顯示進行說明。Form截圖如下圖所示:

C# Win Form 編程實現圖片的數據庫存儲

IMage圖片數據庫讀取(圖片來源互聯網,侵權聯繫刪除)

select * from [user] where user_id='" + this.user_id + "'"//定義查詢語句ds為記錄集 

if (dr["user_image"] != DBNull.Value)//讀取user_image字段並寫入數組
{
byte[] uimage = (byte[])dr["user_image"];
MemoryStream stream = new MemoryStream(uimage);//寫入內存流
image = Image.FromStream(stream);//
this.pictureBox1.Image = image;//與控件關聯
}

以上給出數據庫存儲圖片類型數據並通過C#語言進行讀寫操作實現的部分核心代碼,如有問題建議與意見聯繫作者共同探討,往期文章請點擊鏈接閱讀:


本頭條號長期關注於青少年編程資訊分享;編程課程、素材、代碼分享及青少年編程培訓。如果您對以上方面有興趣,可關注該頭條號,如有編程學習問題可以聯繫作者,共同探討。


分享到:


相關文章: