ホームページ  >  記事  >  バックエンド開発  >  データリーダー C#

データリーダー C#

WBOY
WBOYオリジナル
2024-09-03 15:22:29969ブラウズ

データ リーダーは、データ ソースからデータを読み取るために使用されるオブジェクトです。これにより実行できるのは読み取り操作のみであり、データ ソースに対する更新操作は実行できません。データはデータ ソースからデータ ストリームとして取得されます。データ リーダーは読み取り操作のみに制限されていますが、読み取り専用および転送専用であるため、非常に効果的で最適化されています。 .Net Framework には、SQLDataReader と OleDbDataReader という 2 種類のプロバイダーがあります。データ リーダーは、特定の時点で唯一の行をメモリに保存するため、システムのオーバーヘッドを削減し、アプリケーションのパフォーマンスを向上させます。この記事では、C# のデータ リーダーについて、適切な例とともに詳しく説明します。

構文:

SQL データ リーダーは名前空間 System.Data.SqlClient で使用でき、対応するアセンブリは System.Data.SqlClient.dll です。 SQL データ リーダーは次のように初期化されます。

SqlDataReadersqlReader = sqlCmd.ExecuteReader();

実行リーダーは、SQL ステートメントまたはプロシージャを sqlconnection オブジェクトに渡すために使用され、対応する結果は SqlDataReader の sqlreader オブジェクトに格納されます。データ リーダーから読み取る前に、データ リーダーは常に開いていて、最初のレコードを指している必要があります。データリーダーの read() メソッドを使用して読み取り、次の行に進みます。

oledb データ リーダーも同様に動作します。これは名前空間 System.Data.OleDb で使用でき、対応するアセンブリは System.Data.OleDb.dll です。 oledbDataReader オブジェクトは、OLEDB データ ソースに接続し、そこからデータをフェッチするために使用されます。 SQLDataReader と同様に、oledbdata リーダーも読み取り操作を実行する前に開いておく必要があります。 ODB データ リーダーは次のように初期化されます。

OleDbDataReaderoledbReader = oledbCmd.ExecuteReader();

SQL ステートメントまたはプロシージャを実行するために、executereader が使用される場所。

データリーダーの結果へのアクセス

データ リーダー オブジェクトには、結果セットの行にアクセスするために使用できる読み取りメソッドがあります。各列の値には、名前を使用するか、結果セットに表示される列の順序を使用してアクセスできます。  効率を向上させるために、値自体にアクセスするための一連の事前定義された型変換メソッド。データはキャッシュ メモリに保存されないため、大規模なデータ セットを処理する場合はデータ リーダーを使用することをお勧めします。データ リーダー オブジェクトを使用したら、それを閉じることを常にお勧めします。コマンドに戻り値または出力パラメータがある場合は、データ リーダーが閉じられた後でのみ使用可能になります。データ リーダーを使用する際に留意すべきもう 1 つの重要な点は、接続がデータ リーダーによって使用されている場合、その接続では別のデータ リーダーやその他の操作を実行できないことです。また、覚えておくべき重要な点は、データセットへの順方向アクセスのみが可能であるということです。反復できるのは次のレコードのみであり、前のレコードには反復できません。

複数のセットの操作

データ リーダーが複数の結果セットを返す場合、データ リーダーの 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# のデータ リーダーについて詳しく説明しました。また、データ リーダーがデータ ストリームから順方向でのみ読み取る方法も示しました。この記事では、I .esql データ リーダーと oledb データ リーダーという 2 種類のデータ リーダーについても詳しく説明しました。両方のデータ リーダーの動作を適切な例とともに示しました。この記事では、NextResult メソッドを使用して複数の結果セットを操作する方法と、for a ループを使用して各データ行を反復する方法についても説明しました。さらに詳しく学ぶには、サンプル プログラムを作成して実践することをお勧めします。

おすすめ記事

これは DataReader C# のガイドです。ここでは、C# の DataReader の概要とその例、およびコードの実装と出力について説明します。詳細については、他の推奨記事を参照することもできます –

  1. C# SortedDictionary
  2. C# 文字列形式()
  3. C# の TextWriter
  4. C# の静的コンストラクター

以上がデータリーダー C#の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。