DataTableReader クラス
アセンブリ: System.Data (system.data.dll 内)


DataTableReader の動作は SqlDataReader など他のデータ リーダーとほとんど同じですが、DataTableReader では DataTable 内の行を反復処理できる点が異なります。つまり、キャッシュ内の行の反復処理に対応しています。DataTableReader がアクティブで、位置が自動的に維持されている場合に、キャッシュされているデータを変更できます。
DataTable から DataTableReader を作成すると、作成された DataTableReader オブジェクトには作成元の DataTable と同じデータ (削除するように指定された行を除く) を含む結果セットが 1 つ格納されています。列は元の DataTable と同じ順序で表示されます。返される結果のスキーマやデータは、元の DataTable と同じです。DataSet に複数のテーブルが格納されている場合、DataSet オブジェクトの GetDataReader メソッドを呼び出して作成された DataTableReader には、複数の結果セットが格納されています。結果のシーケンスは、DataSet オブジェクトの DataTableCollection の DataTable オブジェクトと同じです。
返される結果セットには、各 DataRow の現在のバージョンのみが格納されます。削除が指定された行はスキップされます。
DataTableReader により、安定した反復子が得られます。つまり、基になるコレクションが反復処理中に変更された場合でも DataTableReader の内容は無効になりません。たとえば、Rows コレクションの行が反復処理中に 1 つ以上削除された場合でも、DataTableReader 内部における現在の位置は適切に維持されるため、反復子は無効になりません。

System.MarshalByRefObject
System.Data.Common.DbDataReader
System.Data.DataTableReader


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataTableReader コンストラクタ (DataTable)
アセンブリ: System.Data (system.data.dll 内)


Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataTableReader コンストラクタ

名前 | 説明 |
---|---|
DataTableReader (DataTable) | 指定された DataTable のデータを使用して、DataTableReader クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |
DataTableReader (DataTable[]) | DataTable オブジェクトの指定した配列を使用して、DataTableReader クラスの新しいインスタンスを初期化します。 .NET Compact Framework によってサポートされています。 |

DataTableReader コンストラクタ (DataTable[])
アセンブリ: System.Data (system.data.dll 内)


特定の Dataset 内にあるすべてのテーブル、または一部のテーブルに基づいて DataTableReader を作成する必要がある場合、DataSet の GetDataReader メソッドを呼び出します。関連していない DataTable インスタンスのグループに基づいて新しい DataTableReader インスタンスを作成するには、このコンストラクタを使用します。さらに、ソースとなっている DataSet 内の順序が適切ではない場合、このコンストラクタを利用して DataTableReader 内の DataTables の順序を変更できます。

次の例では、TestConstructor メソッドを使用して 2 つの DataTable インスタンスを作成します。DataTableReader クラスに対するこのコンストラクタの使用方法を示すために、この例では 2 つの DataTables を格納する配列に基づいて新しい DataTableReader を作成し、単純な操作を実行して、最初の数行の内容をコンソール ウィンドウに表示します。このアプリケーションをテストするには、新しいコンソール アプリケーションを作成し、新しく作成したファイルにこのサンプル コードを貼り付けます。
Private Sub TestConstructor() ' Create two data adapters, one for each of the two ' DataTables to be filled. Dim customerDataTable As DataTable = GetCustomers() Dim productDataTable As DataTable = GetProducts() ' Create the new DataTableReader. Using reader As New DataTableReader( _ New DataTable() {customerDataTable, productDataTable}) ' Print the contents of each of the result sets. Do PrintColumns(reader) Loop While reader.NextResult() End Using Console.WriteLine("Press Enter to finish.") Console.ReadLine() End Sub Private Function GetCustomers() As DataTable ' Create sample Customers table, in order ' to demonstrate the behavior of the DataTableReader. Dim table As New DataTable ' Create two columns, ID and Name. Dim idColumn As DataColumn = table.Columns.Add("ID", _ GetType(Integer)) table.Columns.Add("Name", GetType(String)) ' Set the ID column as the primary key column. table.PrimaryKey = New DataColumn() {idColumn} table.Rows.Add(New Object() {1, "Mary"}) table.Rows.Add(New Object() {2, "Andy"}) table.Rows.Add(New Object() {3, "Peter"}) table.Rows.Add(New Object() {4, "Russ"}) Return table End Function Private Function GetProducts() As DataTable ' Create sample Products table, in order ' to demonstrate the behavior of the DataTableReader. Dim table As New DataTable ' Create two columns, ID and Name. Dim idColumn As DataColumn = table.Columns.Add("ID", _ GetType(Integer)) table.Columns.Add("Name", GetType(String)) ' Set the ID column as the primary key column. table.PrimaryKey = New DataColumn() {idColumn} table.Rows.Add(New Object() {1, "Wireless Network Card"}) table.Rows.Add(New Object() {2, "Hard Drive"}) table.Rows.Add(New Object() {3, "Monitor"}) table.Rows.Add(New Object() {4, "CPU"}) Return table End Function Private Sub PrintColumns( _ ByVal reader As DataTableReader) ' Loop through all the rows in the DataTableReader. Do While reader.Read() For i As Integer = 0 To reader.FieldCount - 1 Console.Write(reader(i).ToString() & " ") Next Console.WriteLine() Loop End Sub
private static void TestConstructor() { // Create two data adapters, one for each of the two // DataTables to be filled. DataTable customerDataTable = GetCustomers(); DataTable productDataTable = GetProducts(); // Create the new DataTableReader. using (DataTableReader reader = new DataTableReader( new DataTable[] { customerDataTable, productDataTable })) { // Print the contents of each of the result sets. do { PrintColumns(reader); } while (reader.NextResult()); } Console.WriteLine("Press Enter to finish."); Console.ReadLine(); } private static DataTable GetCustomers() { // Create sample Customers table, in order // to demonstrate the behavior of the DataTableReader. DataTable table = new DataTable(); // Create two columns, ID and Name. DataColumn idColumn = table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string )); // Set the ID column as the primary key column. table.PrimaryKey = new DataColumn[] { idColumn }; table.Rows.Add(new object[] { 1, "Mary" }); table.Rows.Add(new object[] { 2, "Andy" }); table.Rows.Add(new object[] { 3, "Peter" }); table.Rows.Add(new object[] { 4, "Russ" }); return table; } private static DataTable GetProducts() { // Create sample Products table, in order // to demonstrate the behavior of the DataTableReader. DataTable table = new DataTable(); // Create two columns, ID and Name. DataColumn idColumn = table.Columns.Add("ID", typeof(int)); table.Columns.Add("Name", typeof(string )); // Set the ID column as the primary key column. table.PrimaryKey = new DataColumn[] { idColumn }; table.Rows.Add(new object[] { 1, "Wireless Network Card" }); table.Rows.Add(new object[] { 2, "Hard Drive" }); table.Rows.Add(new object[] { 3, "Monitor" }); table.Rows.Add(new object[] { 4, "CPU" }); return table; } private static void PrintColumns(DataTableReader reader) { // Loop through all the rows in the DataTableReader while (reader.Read()) { for (int i = 0; i < reader.FieldCount; i++) { Console.Write(reader[i] + " "); } Console.WriteLine(); } }

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


DataTableReader プロパティ

名前 | 説明 | |
---|---|---|
![]() | Depth | オーバーライドされます。 DataTableReader の現在の行の入れ子の深さ。 |
![]() | FieldCount | オーバーライドされます。 現在の行の列数を返します。 |
![]() | HasRows | オーバーライドされます。 DataTableReader に 1 行以上の行が格納されているかどうかを示す値を取得します。 |
![]() | IsClosed | オーバーライドされます。 DataTableReader が閉じられているかどうかを示す値を取得します。 |
![]() | Item | オーバーロードされます。 オーバーライドされます。 指定した列の値をネイティブ形式で取得します。 |
![]() | RecordsAffected | オーバーライドされます。 SQL ステートメントを実行したことで挿入、変更、または削除された行数を取得します。 |
![]() | VisibleFieldCount | DbDataReader の非表示ではないフィールドの数を取得します。 ( DbDataReader から継承されます。) |

DataTableReader メソッド


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |

DataTableReader メンバ
DataTableReader は、1 つ以上の DataTable オブジェクトの内容を 1 つ以上の読み取り専用、前方向の結果セットとして取得します。
DataTableReader データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Depth | オーバーライドされます。 DataTableReader の現在の行の入れ子の深さ。 |
![]() | FieldCount | オーバーライドされます。 現在の行の列数を返します。 |
![]() | HasRows | オーバーライドされます。 DataTableReader に 1 行以上の行が格納されているかどうかを示す値を取得します。 |
![]() | IsClosed | オーバーライドされます。 DataTableReader が閉じられているかどうかを示す値を取得します。 |
![]() | Item | オーバーロードされます。 オーバーライドされます。 指定した列の値をネイティブ形式で取得します。 |
![]() | RecordsAffected | オーバーライドされます。 SQL ステートメントを実行したことで挿入、変更、または削除された行数を取得します。 |
![]() | VisibleFieldCount | DbDataReader の非表示ではないフィールドの数を取得します。(DbDataReader から継承されます。) |


名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | オーバーロードされます。 ( MarshalByRefObject から継承されます。) |

- DataTableReaderのページへのリンク