詳解ADO.NET連接數(shù)據(jù)庫使用說明
如果我們利用Command 對象所執(zhí)行的命令是有傳回數(shù)據(jù)的Select 敘述,此時Command 對象會自動產(chǎn)生一個DataReader 對象。DataReader 是我們寫ASP.NET 網(wǎng)頁的好朋友,因為我們常常會將數(shù)據(jù)源的數(shù)據(jù)取出后顯示給使用者,這時候我們就可以使用DataReader 對象。我們就可以在執(zhí)行Execute 方法時傳入一個DataReader 型態(tài)的變量來接收。
DataReader 對象很單純的一次只讀取一筆紀錄,而且只能只讀,所以效率很好而且可以降低網(wǎng)絡負載。由于Command對象自動會產(chǎn)生DataReader 對象,所以我們只要宣告一個指到DataReader 對象的變量來接收即可,并不需要使用New 運算子來產(chǎn)生;另外要注意的是 DataReader 對象只能配合Command對象使用 ,而且DataReader 對象在操作的時候Connection 對象是保持聯(lián)機的狀態(tài)。#t#
在取得Command 對象執(zhí)行Execute 方法所產(chǎn)生的DataReader 對象后,我們就可以將紀錄中的數(shù)據(jù)取出使用。DataReader 一開始并沒有取回任何數(shù)據(jù),所以我們要先使用Read 方法讓DataReader 先讀取一筆數(shù)據(jù)回來。如果DataReader 對象成功取得數(shù)據(jù)則傳回True,若沒有取得資料則傳回False。這樣一來我們就可以利用Do While...Loop 循環(huán)來取得所有的數(shù)據(jù),如下程序所示:
- Dim cmA As ADOCommand= New ADOCommand("命令字符串","Provider=Microsoft.Jet.OLEDB.4.0;"&
- "Data Source=C:\Inetpub\wwwroot\cr\ch05\MyWeb.mdb")
- Dim drA as ADODataReadercmA.ActiveConnection.Open()cmAcmA.CommandText="Select *
- From Members"cmA.Execute(drA)