国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Access > 正文

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

2020-03-24 17:43:17
字體:
來源:轉載
供稿:網友
使用 DataReader 對象以僅向前移動的、只讀的格式訪問數據
很多時候,您只是希望簡單地瀏覽數據,而并不需要在數據間來回瀏覽,也不需要更改數據(我們將此稱為“流水數據”)。ADO.NET 的 DataReader 對象是專門為此設計的。下面是我編寫的一段示例代碼,可以逐個讀取連接的數據庫中的所有選定數據: ‘ Visual Basic .NET 代碼。
‘ 控制臺html' target='_blank'>應用程序
‘ 引用:
‘ System
‘ System.Data
‘ System.XMLImports System.Data.OleDb ‘ 用于 OleDb 對象。
Imports Microsoft.VisualBasic.ControlChars ‘ 用于 CrLf 常量。Module Module1Sub Main()‘ 創建并初始化 OleDbConnection、OleDbCommand
‘ 和 OleDbDataReader 對象。
Dim objConn As New _
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
"User ID=Admin;" _
"Data Source=C:Program FilesMicrosoft" _
"OfficeOffice10SamplesNorthwind.mdb")objConn.Open()‘ 執行命令并將數據讀取器附加到
‘ 所選數據。
Dim objCmd As New OleDbCommand("SELECT * FROM Products", _
objConn)
Dim objReader As OleDbDataReader = objCmd.ExecuteReader‘ 讀取數據并列出值。
Call ReadData(objReader)End SubPublic 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 = TrueFor intField = 0 To .FieldCount - 1‘ 首先列出列名稱。
If blnColumns = False ThenFor intColumn = 0 To .FieldCount - 1If intColumn = .FieldCount - 1 Then
Console.Write(.GetName(intColumn) _
CrLf)
Else
Console.Write(.GetName(intColumn) _
", ")
End IfNext intColumn‘ 只列出一次列名稱。
blnColumns = TrueEnd If‘ 列出當前行中每個字段的值。
If intField = .FieldCount - 1 Then
Console.Write(.Item(intField) CrLf)
Else
Console.Write(.Item(intField) ", ")
End IfNext intFieldLoopEnd With‘ 暫停,以便用戶在控制臺窗口中查看數據。
Console.Write("按任意鍵繼續...")
Console.Read()End SubEnd 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.XMLImports System.Data.OleDb ‘ 用于 OleDb 對象。
Imports Microsoft.VisualBasic.ControlChars ‘ 用于 CrLf 常量。Module Module1Sub Main()‘ 創建并初始化 OleDbDataAdapter 和 DataSet 對象。
Dim objAdapter As New OleDbDataAdapter _
("SELECT * FROM Products", _
"Provider=Microsoft.Jet.OLEDB.4.0;" _
"User ID=Admin;" _
"Data Source=C:Program FilesMicrosoft" _
"OfficeOffice10SamplesNorthwind.mdb")
Dim objDataSet As New DataSet()‘ 將所選數據復制到數據集。
objAdapter.Fill(objDataSet)‘ 列出數據集中的數據值。
Call ListData(objDataSet)End SubPublic Sub ListData(ByVal objDataSet As DataSet)‘ 目的:列出給定數據集的數據值。
‘ 接受:objDataSet - 數據集。Dim objTable As DataTable
Dim intRow, intColumn As Integer‘ 數據集中可能包含有多個表。
For Each objTable In objDataSet.TablesWith objTableConsole.Write("表" _
.TableName "中的數據" ":" CrLf)‘ 首先列出列名稱。
For intColumn = 0 To .Columns.Count - 1If intColumn = .Columns.Count - 1 Then
Console.Write(.Columns(intColumn).ColumnName _
CrLf)
Else
Console.Write(.Columns(intColumn).ColumnName _
", ")
End IfNext intColumn‘ 按行列出數據...
For intRow = 0 To .Rows.Count - 1‘ ...然后按字段列出每行中的數據。
For intColumn = 0 To _
.Rows(intRow).ItemArray.Length - 1If intColumn = _
.Rows(intRow).ItemArray.Length - 1 Then
Console.Write(.Rows(intRow). _
ItemArray(intColumn) _
CrLf)
Else
Console.Write(.Rows(intRow). _
ItemArray(intColumn) ", ")
End IfNext intColumnNext intRowEnd WithNext objTable‘ 暫停,以便用戶在控制臺窗口中查看數據。
Console.Write("按任意鍵繼續...")
Console.Read()End SubEnd 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(英文,技術文章)
--轉自微軟中國 本文作者:html教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 儋州市| 双鸭山市| 兴仁县| 迁安市| 安吉县| 塔河县| 循化| 南安市| 金华市| 福清市| 晋宁县| 浠水县| 隆德县| 元氏县| 盐山县| 大姚县| 河源市| 永丰县| 泰来县| 屯门区| 金堂县| 社旗县| 伊春市| 化州市| 政和县| 仁布县| 崇仁县| 浮梁县| 泗水县| 云浮市| 米脂县| 措美县| 禹州市| 彭山县| 东台市| 前郭尔| 呼玛县| 汝南县| 汝南县| 栖霞市| 浦江县|