vb.net 存取數(shù)據(jù)庫中的圖片Montaque(原作)
以MS自帶的數(shù)據(jù)庫Northwnd為例,其中有個表是Categories,有四個四段,其中有一個是Image類型的Picture字段.我們首先添加一張bmp圖片到最后一行的Picture中,然后在讀出來顯示到Image控件中.
添加一個SqlDataAdapter1,用向?qū)гO(shè)置聯(lián)接數(shù)據(jù)庫為Northwnd,SQL語句為SELECT [Category ID], [Category Name], Description, Picture FROM Categories.生成一個數(shù)據(jù)集為dataset1. 然后添加兩個按鈕分別表示寫圖片到數(shù)據(jù)庫和讀數(shù)據(jù)庫,還有一個Image控件用于顯示圖片.
添加以下代碼
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load SqlDataAdapter1.Fill(DataSet11) End Sub
'從數(shù)據(jù)庫讀取圖片暫時存儲為monkey.bmp,然后加載到image控件里面. Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LoadPicFromDb.Click Try Dim data As Byte() = DataSet11.Tables(0).Rows(7).Item(3) Dim myfilestream As New System.IO.FileStream(Application.StartupPath & "\monkey.bmp", IO.FileMode.Create) myfilestream.Write(data, 0, data.Length) myfilestream.Close() PictureBox1.Image = New Bitmap(Application.StartupPath & "\monkey.bmp") Catch End Try End Sub
'把C:\6.bmp寫入庫中,你可以改為自己的圖片. Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles InsertPicToDb.Click Dim myfilestream As New System.IO.FileStream("c:\6.bmp", IO.FileMode.Open) Dim data() As Byte ReDim data(myfilestream.Length - 1) myfilestream.Read(data, 0, myfilestream.Length) myfilestream.Close() DataSet11.Tables(0).Rows(7).Item(3) = data SqlDataAdapter1.Update(DataSet11.GetChanges()) End Sub
|