利用VB.NET數(shù)據(jù)庫(kù)訪問(wèn)方法封裝到類實(shí)現(xiàn)案例分析
我們都知道,線程要執(zhí)行的方法不能接受任何參數(shù),如果要傳入方法特定條件,可以將方法放在一個(gè)類中,在類中定義類的屬性,需要時(shí)可以設(shè)置類的屬性,然后用方法調(diào)用這些屬性以實(shí)現(xiàn)方法參數(shù)類似的功能。
#T#ADO.NET提供了一個(gè)統(tǒng)一的編程模式和一組公用的類來(lái)進(jìn)行任何類型的數(shù)據(jù)訪問(wèn),而不管你用何種語(yǔ)言來(lái)開發(fā)代碼。ADO.NET是全新的,但又與ADO 盡可能保持一致,它使編程模式從一個(gè)客戶端/服務(wù)器、基于連接的模式轉(zhuǎn)變到了一個(gè)新的模式,這個(gè)新模式可以讓斷開的前端下載記錄、離線工作、然后重新連接來(lái)提交變化。ADO.NET是WinForms應(yīng)用程序、ASP.NET應(yīng)用程序和Web services的一個(gè)共有的特點(diǎn)。其功能可以跨LAN和 Internet連接來(lái)實(shí)現(xiàn),可以在有狀態(tài)(stateful)和無(wú)狀態(tài)(stateless)情況下實(shí)現(xiàn)。
這里把我在工作中的一點(diǎn)經(jīng)驗(yàn)分享給大家,幫大家解決遇到的問(wèn)題。我們利用VB.NET數(shù)據(jù)庫(kù)訪問(wèn)封裝成類,因?yàn)樯傻木€程在主應(yīng)用程序線程之外運(yùn)行,.net Framework提供線程隔離,這時(shí)如果要用新的線程操縱主應(yīng)用程序中的對(duì)象便不被允許。***的辦法也是將線程要訪問(wèn)的對(duì)象包裝在類中。下面我們創(chuàng)建一個(gè)類,封裝屬性和VB.NET數(shù)據(jù)庫(kù)訪問(wèn)方法:
- 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)建線程并運(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
以上就是關(guān)于VB.NET數(shù)據(jù)庫(kù)訪問(wèn)問(wèn)題上解決的一個(gè)方法,是不是很簡(jiǎn)單啊。