全面解析VB.NET線程數(shù)據(jù)庫訪問方法封裝類
你在開發(fā)程序的時(shí)候最不好弄的就是線程這個(gè)問題,你要考慮并發(fā)和多種時(shí)候的情況一起訪問數(shù)據(jù)庫。VB.NET線程要執(zhí)行的方法不能接受任何參數(shù),如果要傳入方法特定條件,可以將方法放在一個(gè)類中,在類中定義類的屬性,需要時(shí)可以設(shè)置類的屬性,然后用方法調(diào)用這些屬性以實(shí)現(xiàn)方法參數(shù)類似的功能。同時(shí),因?yàn)樯傻木€程在主應(yīng)用程序線程之外運(yùn)行,.net Framework提供線程隔離,這時(shí)如果要用新的VB.NET線程操縱主應(yīng)用程序中的對(duì)象便不被允許。***的辦法也是將線程要訪問的對(duì)象包裝在類中。下面我們創(chuàng)建一個(gè)類,封裝屬性和數(shù)據(jù)庫訪問方法:
- Public Class dealDataBase
- Private m_sqlDataAdapter As SqlDataAdapter
- Private m_table As DataTable
- Public Property setDataAdapter() As SqlDataAdapter
- Get
- setDataAdapter=m_sqlDataAdapter
- End Get
- Set(ByVal value As SqlDataAdapter)
- m_sqlDataAdapter=value
- End Set
- End Property
- Public Property setDataTable() As DataTable
- Get
- setDataTable=m_table
- End Get
- Set(ByVal value As DataTable)
- m_DataTable=value
- End Set
- End Property
- Public sub GetDataFromDataBase()
- …
- m_table.Clear()
- m_sqlDataAdapter.Fill(m_table)
- …
- End Sub
- End Class
下面是創(chuàng)建VB.NET線程并運(yùn)行線程的代碼:
- Dim myDB As New dealDataBase ()
- Dim myThreadStart as ThreadStart
- Dim myThread as Thread
- myDB.setDataAdapter=Me.DataAdapter1 'DataAdapter1是本窗體內(nèi)定義的數(shù)據(jù)適配器
- myDB.setDataTable=Me.DataTable1 'DataTable1是本窗體定義的數(shù)據(jù)表
- …
- myThreadStart=New ThreadStart(AddressOf myDB.GetDataFromDataBase)
- myThread=New Thread(myThreadStart)
- myThread.Start()
- …
- End Sub
【編輯推薦】