資料讀取器 C#

WBOY
發布: 2024-09-03 15:22:29
原創
951 人瀏覽過

資料讀取器是一個用於從資料來源讀取資料的物件。只能對資料來源進行讀取操作,不能進行更新操作。資料作為資料流從資料來源檢索。雖然資料讀取器僅限於讀取操作,但由於它是唯讀和只轉發,所以它是非常有效且最佳化的。 .Net Framework中有兩種類型的提供程序,它們是SQLDataReader和OleDbDataReader。資料讀取器透過減少系統開銷來提高應用程式效能,因為它在給定時間點將唯一的行儲存在記憶體中。本文將詳細介紹 C# 中的資料讀取器以及適當的範例。

文法:

sql資料讀取器在命名空間System.Data.SqlClient中可用,對應的組件是System.Data.SqlClient.dll。 SQL 資料讀取器初始化如下。

SqlDataReadersqlReader = sqlCmd.ExecuteReader();
登入後複製

execute reader用於將SQL語句或程序傳遞給sqlconnection對象,並將對應的結果儲存在SqlDataReader的sqlreader物件中。在從任何資料讀取器讀取之前,它應該始終打開並且應該指向第一筆記錄。使用資料讀取器的read()方法讀取並前進到下一行。

oledb 資料讀取器的行為方式也相同。它在名稱空間 System.Data.OleDb 中可用,對應的組件是 System.Data.OleDb.dll。 oledbDataReader 物件用於連接到 OLEDB 資料來源並從中取得資料。與 SQLDataReader 一樣,oledbdata reader 也應該在執行讀取操作之前開啟。 oledb 資料讀取器初始化如下。

OleDbDataReaderoledbReader = oledbCmd.ExecuteReader();
登入後複製

executereader 用於執行 SQL 語句或程序。

存取資料讀取器結果

資料讀取器物件有一個 read 方法,可用來存取結果集中的行。每個列值都可以使用它們的名稱或使用它們在結果集中出現的列順序來存取。  為了提高效率,使用一組預先定義的類型轉換方法來存取此類值。建議在處理大量資料時使用資料讀取器,因為資料不會儲存在快取中。始終建議在使用資料讀取器物件後將其關閉。如果命令有一些回傳值或輸出參數,則只有在資料讀取器關閉後才可用。使用資料讀取器時要記住的另一件重要事情是,當資料讀取器使用連接時,無法在該連接上執行另一個資料讀取器或任何其他操作。此外,要記住的一件重要事情是只能向前存取資料集。我們只能迭代到下一筆記錄,而不能迭代到上一筆記錄。

使用多個集合

如果資料讀取器傳回多個結果集,可以使用資料讀取器的NextResult方法來存取它們。在實作過程中,應該注意並注意所有結果集都會被迭代,並且結果集中的每一列都是可存取的。

DataReader C# 實作範例

以下是 DataReader C# 的範例:

範例#1

通常,從資料讀取器傳回的結果集中讀取資料是使用 while 迴圈迭代每一行。 read 方法傳回值為 bool 類型,如果存在下一行則傳回 true,對於最後一筆記錄則傳回 false。 while 迴圈將會被執行,直到條件變成 false。

文法:

while(rdr.Read())
{
// operation to be performed
// Access columns
// Data manipulation
}
登入後複製

就像關閉 SQL 連線一樣,關閉資料讀取器始終是最佳實務。所有 while 部分都可以包含在 try 區塊中,並且可以在 finally 區塊中關閉資料讀取器連線。

文法:

try
{
// operation to be performed
// Access columns
// Data manipulation
}
Catch
{
//Handle exception here
}
finally
{
//close the data reader connection
if (reader != null)
{
reader.Close();
}
// close thesql connection
}
登入後複製

代碼:

using System;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace test
{
public partial class test1 : Form
{
public test1()
{
InitializeComponent();
}
Public static void main()
{
string constr = null;
SqlConnectionscon ;
SqlCommandscmd ;
string sstat = null;
constr = "Data Source=testserver;Initial Catalog=testdb;User ID=test;Password=test";
sstat = "Select * from test";
scon = new SqlConnection(constr);
try
{
scon.Open();
scmd = new SqlCommand(sstat, scon);
SqlDataReadersstatReader = scmd.ExecuteReader();
while (sstatReader.Read())
{
Console.WriteLine("Name:" sstatReader.GetValue(0)  + "age:"  sstatReader.GetValue(1) );
}
sstatReader.Close();
scmd.Dispose();
scon.Close();
}
catch (Exception ex)
{
}
}
}
}
登入後複製

輸出:

資料讀取器 C#

範例#2

代碼:

using System;
using System.Windows.Forms;
using System.Data.OleDb;
namespace test
{
public partial class test : Form
{
public test()
{
InitializeComponent();
}
Public static void main()
{
string constr = null;
OleDbConnectionocon ;
OleDbCommandocmd ;
string sql = null;
constr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb";
sql = "select * from emp";
ocon = new OleDbConnection(constr);
try
{
ocon.Open();
ocmd = new OleDbCommand(sql, ocon);
OleDbDataReaderordr = ocmd.ExecuteReader();
while (ordr.Read ())
{
Console.WriteLine("EmpName:" ordr.GetValue(0) + "Empage:"  ordr.GetValue(1) + "Esalary" ordr.GetValue(2) );
}
ordr.Close();
ocmd.Dispose();
ocon.Close();
}
catch (Exception ex)
{
Console.WriteLine("Connection Failed");
}
}
}
}
登入後複製

輸出:

資料讀取器 C#

結論

因此,本文詳細介紹了 C# 中的資料讀取器。它還展示瞭如何從資料流中僅以正向方式讀取資料讀取器。文章也詳細解釋了兩種類型的資料讀取器,即.esql資料讀取器和oledb資料讀取器。它展示了兩個資料讀取器的工作原理以及適當的範例。本文也介紹如何使用 NextResult 方法處理多個結果集以及如何使用 for 迴圈迭代每個資料行。要了解更多詳細信息,建議編寫範例程式並進行練習。

推薦文章

這是 DataReader C# 指南。在這裡,我們討論 C# 中的 DataReader 簡介及其範例以及程式碼實作和輸出。您也可以瀏覽我們其他推薦的文章以了解更多資訊 –

  1. C# 排序字典
  2. C# 字串格式()
  3. C# 中的 TextWriter
  4. C# 中的靜態建構子

以上是資料讀取器 C#的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板