人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

運用 ADO.NET 解鎖 Microsoft Access 數據(2)

運用 ADO.NET 解鎖 Microsoft Access 數據(2)

更新時間:2022-06-30 文章作者:未知 信息來源:網絡 閱讀次數:

使用 DataReader 對象以僅向前移動的、只讀的格式訪問數據
很多時候,您只是希望簡單地瀏覽數據,而并不需要在數據間來回瀏覽,也不需要更改數據(我們將此稱為“流水數據”)。ADO.NET 的 DataReader 對象是專門為此設計的。下面是我編寫的一段示例代碼,可以逐個讀取連接的數據庫中的所有選定數據:

' Visual Basic .NET 代碼。
' 控制臺應用程序。
' 引用:
' System
' System.Data
' System.XML

Imports System.Data.OleDb ' 用于 OleDb 對象。
Imports Microsoft.VisualBasic.ControlChars' 用于 CrLf 常量。

Module Module1

Sub Main()

' 創建并初始化 OleDbConnection、OleDbCommand
' 和 OleDbDataReader 對象。
Dim objConn As New _
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
"User ID=Admin;" & _
"Data Source=C:\Program Files\Microsoft" & _
"Office\Office10\Samples\Northwind.mdb")

objConn.Open()

' 執行命令并將數據讀取器附加到
' 所選數據。
Dim objCmd As New OleDbCommand("SELECT * FROM Products", _
objConn)
Dim objReader As OleDbDataReader = objCmd.ExecuteReader

' 讀取數據并列出值。
Call ReadData(objReader)

End Sub

Public Sub ReadData(ByVal objReader As OleDbDataReader)

' 目的:列出給定數據讀取器的數據值。
' 接受:objReader - 數據讀取器。

Dim intField As Integer ' 行中的當前字段。
Dim intColumn As Integer' 當前列的名稱。
Dim blnColumns As Boolean = False ' 列名稱是否已
' 列出。

With objReader

' 一次讀取一行,直至文件末尾。
Do While .Read = True

For intField = 0 To .FieldCount - 1

' 首先列出列名稱。
If blnColumns = False Then

For intColumn = 0 To .FieldCount - 1

If intColumn = .FieldCount - 1 Then
Console.Write(.GetName(intColumn) & _
CrLf)
Else
Console.Write(.GetName(intColumn) & _
", ")
End If

Next intColumn

' 只列出一次列名稱。
blnColumns = True

End If

' 列出當前行中每個字段的值。
If intField = .FieldCount - 1 Then
Console.Write(.Item(intField) & CrLf)
Else
Console.Write(.Item(intField) & ", ")
End If

Next intField

Loop

End With

' 暫停,以便用戶在控制臺窗口中查看數據。
Console.Write("按任意鍵繼續...")
Console.Read()

End Sub

End Module

下面是該代碼的工作方式:

正如前面的代碼示例所示,Imports 代碼(例如,Imports System.Data.OleDb)有助于減少訪問對象或對象的成員時所需的工作量。類似地,對 OleDbConnection、OleDbCommand 和 OleDbDataReader 對象進行聲明和初始化,以分別代表數據庫連接、數據記錄和記錄游標。此代碼的真正核心是 ReadData 子例程。
Do 循環使用 OleDbDataReader 對象的 Read 方法一次讀取一行數據,直到該方法返回 False(表示已沒有其他數據可讀取)。
OleDbDataReader 對象的 FieldCount 屬性返回數據行中數據字段(列)的數目。如果是第一行數據,則在列上調用 OleDbDataReader 對象的 GetName 屬性,以返回列的名稱。
OleDbDataReader 對象的 Item 屬性與 FieldCount 屬性結合,使用一個索引編號返回數據行中每個數據字段的值。
使用 DataAdapter、DataSet、DataTable、DataRow 和 DataColumn 對象處理數據集
ADO.NET 的 DataSet 對象是為斷開連接的數據而設計的。您可以在一個數據集中模擬整個數據庫的結構和數據,包括表、行、列、字段,甚至關系。處理完數據后,可以使數據集中的數據與原始數據庫中的數據同步。下面是我編寫的一段示例代碼,可以逐個讀取斷開連接的數據集中的所有數據。

' Visual Basic .NET 代碼。
' 控制臺應用程序。
' 引用:
' System
' System.Data
' System.XML

Imports System.Data.OleDb ' 用于 OleDb 對象。
Imports Microsoft.VisualBasic.ControlChars' 用于 CrLf 常量。

Module Module1

Sub Main()

' 創建并初始化 OleDbDataAdapter 和 DataSet 對象。
Dim objAdapter As New OleDbDataAdapter _
("SELECT * FROM Products", _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"User ID=Admin;" & _
"Data Source=C:\Program Files\Microsoft" & _
"Office\Office10\Samples\Northwind.mdb")
Dim objDataSet As New DataSet()

' 將所選數據復制到數據集。
objAdapter.Fill(objDataSet)

' 列出數據集中的數據值。
Call ListData(objDataSet)

End Sub

Public Sub ListData(ByVal objDataSet As DataSet)

' 目的:列出給定數據集的數據值。
' 接受:objDataSet - 數據集。

Dim objTable As DataTable
Dim intRow, intColumn As Integer

' 數據集中可能包含有多個表。
For Each objTable In objDataSet.Tables

With objTable

Console.Write("表" & _
.TableName "中的數據" & ":" & CrLf)

' 首先列出列名稱。
For intColumn = 0 To .Columns.Count - 1

If intColumn = .Columns.Count - 1 Then
Console.Write(.Columns(intColumn).ColumnName _
& CrLf)
Else
Console.Write(.Columns(intColumn).ColumnName _
& ", ")
End If

Next intColumn

' 按行列出數據...
For intRow = 0 To .Rows.Count - 1

' ...然后按字段列出每行中的數據。
For intColumn = 0 To _
.Rows(intRow).ItemArray.Length - 1

If intColumn = _
.Rows(intRow).ItemArray.Length - 1 Then
Console.Write(.Rows(intRow). _
ItemArray(intColumn) _
& CrLf)
Else
Console.Write(.Rows(intRow). _
ItemArray(intColumn) & ", ")
End If

Next intColumn

Next intRow

End With

Next objTable

' 暫停,以便用戶在控制臺窗口中查看數據。
Console.Write("按任意鍵繼續...")
Console.Read()

End Sub

End Module

下面是該代碼的工作方式:

同樣,Imports 代碼(例如,Imports System.Data.OleDb)有助于減少訪問對象或對象的成員時所需的工作量。類似地,對 OleDbDataAdapter 和 DataSet 對象進行聲明和初始化,分別代表數據庫與數據集之間的適配器以及數據集。OleDbAdapter 對象的 FillData 方法將數據庫中的數據復制到數據集。此代碼的核心是 ListData 子例程。
通過使用 DataSet 對象的 Tables 屬性,最外層的 For...Each 循環將遍歷數據集中的每個表,并將每個表作為 DataTable 對象返回。
DataTable 對象的 Columns 屬性返回一個 DataColumnCollection,代表表中的所有列。通過結合使用 Columns 屬性和一個索引編號(即結合 DataColumnCollection 集合的 Count 屬性,如代碼中所示),將返回一個 DataColumn 對象。DataColumn 對象的 ColumnName 屬性返回列的名稱。
同樣,DataTable 對象的 Rows 屬性返回一個 DataRowCollection,代表表中的所有行。通過結合使用 Rows 屬性和一個索引編號(即結合 DataRowCollection 集合的 Count 屬性,如代碼中所示),將返回一個 DataRow 對象。DataRow 對象的 ItemArray 屬性返回一個 Object 類型的數組,代表數據行中的每個值。通過結合使用 ItemArray 屬性和一個索引編號(即結合 DataColumnCollection 集合的 Count 屬性,如代碼中所示),將返回單個數據字段值。
更多信息
有關 ADO.NET 的更多信息,請參閱以下內容:

ADO.NET(英文,鏈接列表)
ADO.NET for the ADO Programmer(英文,技術文章)
Accessing Data with ADO.NET(英文,鏈接列表)
Views and Filters(英文,技術文章)
Data Relations and Relatives(英文,技術文章)
--轉自微軟中國

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 城口县| 德保县| 县级市| 花垣县| 芮城县| 阜平县| 长乐市| 招远市| 江西省| 洛浦县| 黄大仙区| 孟州市| 虎林市| 古交市| 罗甸县| 枞阳县| 喜德县| 耿马| 禹城市| 荔波县| 交城县| 翼城县| 天长市| 铜陵市| 碌曲县| 嘉荫县| 屯留县| 丹江口市| 庆云县| 闽清县| 博野县| 富民县| 万州区| 临颍县| 雅江县| 修武县| 九龙城区| 天峨县| 枣强县| 科尔| 新宁县|