掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流
VB.NET數(shù)據(jù)庫(kù)基礎(chǔ)教程今天我們來(lái)簡(jiǎn)介一下關(guān)于DataAdapter類(lèi),可能大家對(duì)于它不是很熟悉,在這里呢和大家分享一下關(guān)于DataAdapter類(lèi)的原理機(jī)制,讓大家更好的運(yùn)用。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),玉泉街道企業(yè)網(wǎng)站建設(shè),玉泉街道品牌網(wǎng)站建設(shè),網(wǎng)站定制,玉泉街道網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,玉泉街道網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
VB.NET數(shù)據(jù)庫(kù)基礎(chǔ)教程之DataAdapter類(lèi)
DataAdapter是數(shù)據(jù)提供程序的一個(gè)子組件。與Connection和Command類(lèi)一樣,DataAdapter類(lèi)也存在于ODBC、OLE DB、SQL Server和Oracle中。本節(jié)介紹OLE DB 的DataAdapter類(lèi),注意,不同版本的DataAdapter類(lèi)功能相同。
DataAdapter類(lèi)是數(shù)據(jù)庫(kù)和程序之間的橋梁,它可以執(zhí)行Command對(duì)象,從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),再填充到DataSet對(duì)象中,或使用DataSet對(duì)象插入、更新和刪除數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
DataAdapter用于填充DataSet對(duì)象,所以本節(jié)開(kāi)始詳細(xì)探討DataSet對(duì)象。后續(xù)的章節(jié)將進(jìn)一步介紹DataSet對(duì)象,討論這個(gè)類(lèi)的更多知識(shí)和用法。
DataAdapter最常用于從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),并填充DataSet對(duì)象,所以先看看用于這種目的的構(gòu)造函數(shù)。
Command類(lèi)的***個(gè)構(gòu)造函數(shù)使用SQL字符串和Connection對(duì)象。下面的代碼在DataAdapter的構(gòu)造函數(shù)中使用前面例子中的Command對(duì)象。
下一行代碼聲明一個(gè)表示DataSet類(lèi)的新對(duì)象,注意DataSet是獨(dú)立于提供程序的,因?yàn)樗粠DBC、OLE DB、SQL或Oracle前綴。DataSet的構(gòu)造函數(shù)提供了一個(gè)重載列表,但一般在初始化時(shí)不帶參數(shù)。
初始化DataAdapter和DataSet對(duì)象后,就要從數(shù)據(jù)庫(kù)中檢索數(shù)據(jù),并填充DataSet對(duì)象。使用DataAdapter的Fill方法來(lái)完成填充工作。Fill方法也提供了一個(gè)重載列表,但最常用的是下面代碼中的Fill方法。該方法指定了表示DataSet的對(duì)象和一個(gè)表名,當(dāng)要把多個(gè)表添加到DataSet對(duì)象中時(shí),要使用該表名進(jìn)行表映射。這個(gè)表名還可以用于引用DataSet對(duì)象中的表。注意不必在SQL語(yǔ)句的FROM子句中使用指定的表名,可以使用任何表名。
給DataSet對(duì)象填充數(shù)據(jù)后,DataAdapter的工作就完成了,應(yīng)調(diào)用Dispose方法釋放DataAdapter占用的資源,并把它設(shè)置為Nothing。Command的工作也完成了,***也刪除它,并把它設(shè)置為Nothing,以釋放資源。另外,如果不進(jìn)行更多的數(shù)據(jù)庫(kù)操作,應(yīng)關(guān)閉數(shù)據(jù)庫(kù)連接,對(duì)該連接調(diào)用Dispose方法。
- Dim objDataAdapter As New OleDbDataAdapter(objCommand)
- Dim objDataSet As New DataSet
- objDataAdapter.Fill(objDataSet, "Employees")
- objDataAdapter.Dispose()
- objDataAdapter = Nothing
- objCommand.Dispose()
- objCommand = Nothing
DataAdapter 另一個(gè)常用的構(gòu)造函數(shù)把SQL語(yǔ)句直接傳送給DataAdapter,而不使用Command對(duì)象,如下面的代碼所示。在這個(gè)構(gòu)造函數(shù)中,傳送了字符串變量和表示數(shù)據(jù)庫(kù)連接的對(duì)象。在前面的例子中,是把Command對(duì)象傳送給DataAdapter,使DataAdapter能提取其中的連接信息。而在這個(gè)構(gòu)造函數(shù)中,為SQL語(yǔ)句使用了一個(gè)字符串,所以DataAdapter需要通過(guò)Connection對(duì)象了解如何與數(shù)據(jù)庫(kù)通信,以執(zhí)行SQL字符串。
- Dim strSQL As String = _
- "SELECT FIRST_NAME, LAST_NAME, FROM HR.EMPLOYEES"
- Dim objDataAdapter As New OleDbDataAdapter(strSQL, objConnection)
- Dim objDataSet As New DataSet
- objDataAdapter.Fill(objDataSet, "Employees")
- objDataAdapter.Dispose()
- objDataAdapter = Nothing
給DataSet對(duì)象填充數(shù)據(jù)后,就可以處理這些數(shù)據(jù)。DataSet對(duì)象包含一系列表,每個(gè)表都包含一系列行,每一行都包含一系列項(xiàng),這些項(xiàng)表示行中的列。這聽(tīng)起來(lái)很容易混淆,但實(shí)際上非常簡(jiǎn)單,如下面的代碼所示。
代碼為DataRow聲明一個(gè)對(duì)象,它用于訪問(wèn)Rows集合中的每一行,Rows集合放在Tables集合的表中。接著使用For Each循環(huán)迭代表中的行。使用DataRow對(duì)象的Item屬性,可以訪問(wèn)行中的每一列,如下面的代碼所示。這行代碼把DataSet對(duì)象中每個(gè)雇員的姓名輸出到IDE的輸出窗口中。
***,使用完DataSet對(duì)象后,調(diào)用Dispose方法釋放DataSet對(duì)象占用的資源,并把它設(shè)置為Nothing。這是非常重要的,因?yàn)镈ataSet對(duì)象表示一個(gè)內(nèi)存數(shù)據(jù)高速緩存,即DataSet對(duì)象包含的所有數(shù)據(jù)都加載到內(nèi)存中,因此應(yīng)盡快釋放該內(nèi)存。
- Dim objDataRow As DataRow
- For Each objDataRow In objDataSet.Table("Employees").Rows
- Debug.WriteLine(objDataRow.Item("FIRST_NAME") & " " &_
- objDataRow.Item("LAST_NAME")
- Next
- objDataSet.Dispose()
- objDataSet = Nothing
在修改完 DataSet對(duì)象中的數(shù)據(jù)后,可以使用DataAdapter的Update方法,把DataSet對(duì)象中的數(shù)據(jù)更新到數(shù)據(jù)庫(kù)中。這個(gè)方法很少使用,因?yàn)橐话闶褂靡晥D或存儲(chǔ)過(guò)程給DataSet填充多個(gè)表中的數(shù)據(jù)。在關(guān)系數(shù)據(jù)庫(kù)中更新或插入數(shù)據(jù)時(shí),通常使用存儲(chǔ)過(guò)程執(zhí)行插入或更新操作,再使用 Command對(duì)象執(zhí)行這些存儲(chǔ)過(guò)程。存儲(chǔ)過(guò)程可以執(zhí)行一個(gè)或多個(gè)SQL語(yǔ)句,并在這些語(yǔ)句上進(jìn)行邏輯和有效性檢查。
以上是VB.NET數(shù)據(jù)庫(kù)基礎(chǔ)教程對(duì)DataAdapter類(lèi)的簡(jiǎn)介,以后還會(huì)對(duì)更多的類(lèi)做詳細(xì)的簡(jiǎn)介,請(qǐng)大家即時(shí)關(guān)注。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢(xún)/運(yùn)營(yíng)咨詢(xún)/技術(shù)建議/互聯(lián)網(wǎng)交流