溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

VB.NET數據庫中DataAdapter類有什么用

發(fā)布時間:2021-12-02 15:07:03 來源:億速云 閱讀:429 作者:小新 欄目:編程語言

這篇文章主要介紹VB.NET數據庫中DataAdapter類有什么用,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

DataAdapter類

DataAdapter是數據提供程序的一個子組件。與Connection和Command類一樣,DataAdapter類也存在于ODBC、OLE DB、SQL Server和Oracle中。本節(jié)介紹OLE DB 的DataAdapter類,注意,不同版本的DataAdapter類功能相同。
DataAdapter類是數據庫和程序之間的橋梁,它可以執(zhí)行Command對象,從數據庫中檢索數據,再填充到DataSet對象中,或使用DataSet對象插入、更新和刪除數據庫中的數據。
DataAdapter用于填充DataSet對象,所以本節(jié)開始詳細探討DataSet對象。后續(xù)的章節(jié)將進一步介紹DataSet對象,討論這個類的更多知識和用法。
DataAdapter最常用于從數據庫中檢索數據,并填充DataSet對象,所以先看看用于這種目的的構造函數。

Command類的***個構造函數使用SQL字符串和Connection對象。下面的代碼在DataAdapter的構造函數中使用前面例子中的Command對象。

下一行代碼聲明一個表示DataSet類的新對象,注意DataSet是獨立于提供程序的,因為它不帶ODBC、OLE DB、SQL或Oracle前綴。DataSet的構造函數提供了一個重載列表,但一般在初始化時不帶參數。
初始化DataAdapter和DataSet對象后,就要從數據庫中檢索數據,并填充DataSet對象。使用DataAdapter的Fill方法來完成填充工作。Fill方法也提供了一個重載列表,但最常用的是下面代碼中的Fill方法。該方法指定了表示DataSet的對象和一個表名,當要把多個表添加到DataSet對象中時,要使用該表名進行表映射。這個表名還可以用于引用DataSet對象中的表。注意不必在SQL語句的FROM子句中使用指定的表名,可以使用任何表名。

給DataSet對象填充數據后,DataAdapter的工作就完成了,應調用Dispose方法釋放DataAdapter占用的資源,并把它設置為Nothing。Command的工作也完成了,***也刪除它,并把它設置為Nothing,以釋放資源。另外,如果不進行更多的數據庫操作,應關閉數據庫連接,對該連接調用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 另一個常用的構造函數把SQL語句直接傳送給DataAdapter,而不使用Command對象,如下面的代碼所示。在這個構造函數中,傳送了字符串變量和表示數據庫連接的對象。在前面的例子中,是把Command對象傳送給DataAdapter,使DataAdapter能提取其中的連接信息。而在這個構造函數中,為SQL語句使用了一個字符串,所以DataAdapter需要通過Connection對象了解如何與數據庫通信,以執(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對象填充數據后,就可以處理這些數據。DataSet對象包含一系列表,每個表都包含一系列行,每一行都包含一系列項,這些項表示行中的列。這聽起來很容易混淆,但實際上非常簡單,如下面的代碼所示。

代碼為DataRow聲明一個對象,它用于訪問Rows集合中的每一行,Rows集合放在Tables集合的表中。接著使用For Each循環(huán)迭代表中的行。使用DataRow對象的Item屬性,可以訪問行中的每一列,如下面的代碼所示。這行代碼把DataSet對象中每個雇員的姓名輸出到IDE的輸出窗口中。

***,使用完DataSet對象后,調用Dispose方法釋放DataSet對象占用的資源,并把它設置為Nothing。這是非常重要的,因為DataSet對象表示一個內存數據高速緩存,即DataSet對象包含的所有數據都加載到內存中,因此應盡快釋放該內存。

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對象中的數據后,可以使用DataAdapter的Update方法,把DataSet對象中的數據更新到數據庫中。這個方法很少使用,因為一般使用視圖或存儲過程給DataSet填充多個表中的數據。在關系數據庫中更新或插入數據時,通常使用存儲過程執(zhí)行插入或更新操作,再使用 Command對象執(zhí)行這些存儲過程。存儲過程可以執(zhí)行一個或多個SQL語句,并在這些語句上進行邏輯和有效性檢查。

以上是“VB.NET數據庫中DataAdapter類有什么用”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI