VB.Net How to Add Image to Access Database — VB.Net 如何把圖片加入到Access資料庫上

今天有朋友問到如何把圖片[Image] 放進資料庫上
我想了很久..也不懂得怎樣回答…
因為我沒有想過把圖片加進資料庫…
可能是我做的程式都是會在公司內部用
所以所有的圖片檔都是方進NAS Drive 的
經過檔案路徑去找尋圖片檔案
之後再用
Dim im as Image = Image.FromFile(Filepath 和 FileName) ‘取出圖片的

今日希望可以和大家分享我把圖片放進資料庫上的Table  [Access 的]
首先我們要建立一個Access Database

建立一個Table 叫 “PictureDB
入面有2個Field 分別是
ID -> AutoNumber
PIC -> OLE Object 用來儲存圖片的Byte Array 的

把資料庫設定好後我們便可以開始用Visual Studio 寫Code 了

我建立了一個Method 特別是用來把圖片放進資料庫的
AddImageToDataBase(圖片檔的Full Path)

‘全段把圖片加進Database 的程式碼

Public Sub AddImageToDataBase(ByVal PicFileName As String)

'用File Stream 把這個圖片檔 打開成Stream
Dim pic As New FileStream(PicFileName, FileMode.Open)
'定義一個Byte Array來儲存 這個檔案的Byte
Dim FileByteArray(pic.Length - 1) As Byte
'把這個檔案的 資料寫進已定義的ByteArray 裡
pic.Read(FileByteArray, 0, pic.Length)
' 關掉這個圖片檔的Stream
pic.Close()

'SQL 用來把這圖片加進 database 上
Dim sql As String = "INSERT INTO pictureDB(PIC) values (@pic)"
Dim objConn As New OleDbConnection
Dim objComm As New OleDbCommand
'設定這個SQL Connection 的SQL Connection string
objConn.ConnectionString = ConStr 'ConStr是 SQL Connection的字串


Try

'設定這個SQL Command 的SQL 查詢句子
objComm.CommandText = sql
'設定這個SQL Command的 Connection
objComm.Connection = objConn
'Assign SQL Variable 的內容
objComm.Parameters.AddWithValue("@pic", pic)
'打開SQL Connection
objConn.Open()
'執行這個SQL 指令
objComm.ExecuteNonQuery()
'完成後出現一個Pop Up Message 出
MsgBox("OK")

Catch ex As Exception
'當有錯誤發生時出現一個 Pop Up Message 說明錯誤
MsgBox(ex.Message)
Finally

objComm = Nothing
'關閉SQL Connection
objConn.Close()
objConn = Nothing

End Try

End Sub

相信在SQL Server 的做法也是大致上一樣的

Hope you find it useful

下一節的網誌會介紹如何把這圖片

Leave a Reply