DataTableReaderとは? わかりやすく解説

DataTableReader クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

DataTableReader は、1 つ以上の DataTable オブジェクトの内容を 1 つ以上の読み取り専用、前方向の結果セットとして取得します。

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public NotInheritable Class
 DataTableReader
    Inherits DbDataReader
Dim instance As DataTableReader
public sealed class DataTableReader : DbDataReader
public ref class DataTableReader sealed : public
 DbDataReader
public final class DataTableReader extends
 DbDataReader
public final class DataTableReader extends
 DbDataReader
解説解説

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.Object
   System.MarshalByRefObject
     System.Data.Common.DbDataReader
      System.Data.DataTableReader
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataTableReader コンストラクタ (DataTable)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定された DataTable のデータを使用して、DataTableReader クラスの新しいインスタンスを初期化します。

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    dataTable As DataTable _
)
Dim dataTable As DataTable

Dim instance As New DataTableReader(dataTable)
public DataTableReader (
    DataTable dataTable
)
public:
DataTableReader (
    DataTable^ dataTable
)
public DataTableReader (
    DataTable dataTable
)
public function DataTableReader (
    dataTable : DataTable
)

パラメータ

dataTable

新しい DataTableReader が結果セットを取得する DataTable。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataTableReader コンストラクタ

DataTableReader クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
DataTableReader (DataTable) 指定された DataTable のデータを使用して、DataTableReader クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

DataTableReader (DataTable[]) DataTable オブジェクトの指定した配列を使用して、DataTableReader クラスの新しいインスタンスを初期化します。

.NET Compact Framework によってサポートされています。

参照参照

関連項目

DataTableReader クラス
DataTableReader メンバ
System.Data 名前空間

DataTableReader コンストラクタ (DataTable[])

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

DataTable オブジェクトの指定した配列を使用して、DataTableReader クラスの新しいインスタンスを初期化します。

名前空間: System.Data
アセンブリ: System.Data (system.data.dll 内)
構文構文

Public Sub New ( _
    dataTables As DataTable() _
)
Dim dataTables As DataTable()

Dim instance As New DataTableReader(dataTables)
public DataTableReader (
    DataTable[] dataTables
)
public:
DataTableReader (
    array<DataTable^>^ dataTables
)
public DataTableReader (
    DataTable[] dataTables
)
public function DataTableReader (
    dataTables : DataTable[]
)

パラメータ

dataTables

新しい DataTableReader オブジェクトの結果を提供する DataTable オブジェクトの配列。

解説解説
使用例使用例

次の例では、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();
    }
}

コンソール ウィンドウには次の結果が表示されます。

プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataTableReader プロパティ


パブリック プロパティパブリック プロパティ

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

関連項目

DataTableReader クラス
System.Data 名前空間

DataTableReader メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Close オーバーライドされます。 現在の DataTableReader を閉じます。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  DbDataReader によって消費されているリソースを解放します。 ( DbDataReader から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。)
パブリック メソッド GetBoolean オーバーライドされます。 指定した列の値を Boolean として取得します。
パブリック メソッド GetByte オーバーライドされます。 指定した列の値をバイトとして取得します。
パブリック メソッド GetBytes オーバーライドされます。 指定したバッファ オフセットを開始位置として、指定した列オフセットから始まる文字のストリームをバッファに配列として読み込みます。
パブリック メソッド GetChar オーバーライドされます。 指定した列の値を文字として取得します。
パブリック メソッド GetChars オーバーライドされます。 指定した列の値を文字配列として返します。
パブリック メソッド GetData  要求された列の序数の DbDataReader オブジェクトを返します。 ( DbDataReader から継承されます。)
パブリック メソッド GetDataTypeName オーバーライドされます。 指定した列のデータ型を示す文字列を取得します。
パブリック メソッド GetDateTime オーバーライドされます。 指定した列の値を DateTime オブジェクトとして取得します。
パブリック メソッド GetDecimal オーバーライドされます。 指定した列の値を Decimal として取得します。
パブリック メソッド GetDouble オーバーライドされます。 列の値を倍精度浮動小数点数値として取得します。
パブリック メソッド GetEnumerator オーバーライドされます。 項目のコレクションを反復処理するために使用できる列挙子を返します。
パブリック メソッド GetFieldType オーバーライドされます。 オブジェクトのデータ型である Type を取得します。
パブリック メソッド GetFloat オーバーライドされます。 指定した列の値を単精度浮動小数点数として取得します。
パブリック メソッド GetGuid オーバーライドされます。 指定した列の値をグローバル一意識別子 (GUID) として取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetInt16 オーバーライドされます。 指定した列の値を 16 ビット符号付き整数として取得します。
パブリック メソッド GetInt32 オーバーライドされます。 指定した列の値を 32 ビット符号付き整数として取得します。
パブリック メソッド GetInt64 オーバーライドされます。 指定した列の値を 64 ビット符号付き整数として取得します。
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド GetName オーバーライドされます。 指定した列の値を String として取得します。
パブリック メソッド GetOrdinal オーバーライドされます。 列の名前を指定して、列の序数を取得します。
パブリック メソッド GetProviderSpecificFieldType オーバーライドされます。 指定した列の型をプロバイダ固有の形式で取得します。
パブリック メソッド GetProviderSpecificValue オーバーライドされます。 指定した列の値をプロバイダ固有の形式で取得します。
パブリック メソッド GetProviderSpecificValues オーバーライドされます。 指定された配列に、DataTableReader のすべての列に関するプロバイダ固有の型の情報を格納します。
パブリック メソッド GetSchemaTable オーバーライドされます。 DataTableReader の列メタデータを記述する DataTable を返します。
パブリック メソッド GetString オーバーライドされます。 指定した列の値を文字列として取得します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 ( Object から継承されます。)
パブリック メソッド GetValue オーバーライドされます。 指定した列の値をネイティブ形式で取得します。
パブリック メソッド GetValues オーバーライドされます。 DataTableReader の現在の行の値を格納する Objects の配列を取得します。
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 ( MarshalByRefObject から継承されます。)
パブリック メソッド IsDBNull オーバーライドされます。 列に格納されている値が存在しない値または欠損値かどうかを示す値を取得します。
パブリック メソッド NextResult オーバーライドされます。 DataTableReader を次の結果に進めます (存在する場合)。
パブリック メソッド Read オーバーライドされます。 DataTableReader を次のレコードに進めます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

DataTableReader クラス
System.Data 名前空間

DataTableReader メンバ

DataTableReader は、1 つ以上の DataTable オブジェクトの内容を 1 つ以上の読み取り専用、前方向の結果セットとして取得します。

DataTableReader データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Depth オーバーライドされます。 DataTableReader の現在の行の入れ子の深さ。
パブリック プロパティ FieldCount オーバーライドされます。 現在の行の列数を返します。
パブリック プロパティ HasRows オーバーライドされます。 DataTableReader に 1 行以上の行が格納されているかどうかを示す値を取得します。
パブリック プロパティ IsClosed オーバーライドされます。 DataTableReader が閉じられているかどうかを示す値を取得します。
パブリック プロパティ Item オーバーロードされます。 オーバーライドされます。 指定した列の値をネイティブ形式で取得します。
パブリック プロパティ RecordsAffected オーバーライドされます。 SQL ステートメントを実行したことで挿入、変更、または削除された行数を取得します。
パブリック プロパティ VisibleFieldCount  DbDataReader の非表示ではないフィールドの数を取得します。(DbDataReader から継承されます。)
パブリック メソッドパブリック メソッド
( プロテクト メソッド も参照)
  名前 説明
パブリック メソッド Close オーバーライドされます。 現在の DataTableReader を閉じます。
パブリック メソッド CreateObjRef  リモート オブジェクトとの通信に使用するプロキシの生成に必要な情報をすべて格納しているオブジェクトを作成します。 (MarshalByRefObject から継承されます。)
パブリック メソッド Dispose  DbDataReader によって消費されているリソースを解放します。 (DbDataReader から継承されます。)
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。)
パブリック メソッド GetBoolean オーバーライドされます。 指定した列の値を Boolean として取得します。
パブリック メソッド GetByte オーバーライドされます。 指定した列の値をバイトとして取得します。
パブリック メソッド GetBytes オーバーライドされます。 指定したバッファ オフセットを開始位置として、指定した列オフセットから始まる文字のストリームをバッファに配列として読み込みます。
パブリック メソッド GetChar オーバーライドされます。 指定した列の値を文字として取得します。
パブリック メソッド GetChars オーバーライドされます。 指定した列の値を文字配列として返します。
パブリック メソッド GetData  要求された列の序数の DbDataReader オブジェクトを返します。 (DbDataReader から継承されます。)
パブリック メソッド GetDataTypeName オーバーライドされます。 指定した列のデータ型を示す文字列を取得します。
パブリック メソッド GetDateTime オーバーライドされます。 指定した列の値を DateTime オブジェクトとして取得します。
パブリック メソッド GetDecimal オーバーライドされます。 指定した列の値を Decimal として取得します。
パブリック メソッド GetDouble オーバーライドされます。 列の値を倍精度浮動小数点数値として取得します。
パブリック メソッド GetEnumerator オーバーライドされます。 項目のコレクションを反復処理するために使用できる列挙子を返します。
パブリック メソッド GetFieldType オーバーライドされます。 オブジェクトのデータ型である Type を取得します。
パブリック メソッド GetFloat オーバーライドされます。 指定した列の値を単精度浮動小数点数として取得します。
パブリック メソッド GetGuid オーバーライドされます。 指定した列の値をグローバル一意識別子 (GUID) として取得します。
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetInt16 オーバーライドされます。 指定した列の値を 16 ビット符号付き整数として取得します。
パブリック メソッド GetInt32 オーバーライドされます。 指定した列の値を 32 ビット符号付き整数として取得します。
パブリック メソッド GetInt64 オーバーライドされます。 指定した列の値を 64 ビット符号付き整数として取得します。
パブリック メソッド GetLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、現在の有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド GetName オーバーライドされます。 指定した列の値を String として取得します。
パブリック メソッド GetOrdinal オーバーライドされます。 列の名前を指定して、列の序数を取得します。
パブリック メソッド GetProviderSpecificFieldType オーバーライドされます。 指定した列の型をプロバイダ固有の形式で取得します。
パブリック メソッド GetProviderSpecificValue オーバーライドされます。 指定した列の値をプロバイダ固有の形式で取得します。
パブリック メソッド GetProviderSpecificValues オーバーライドされます。 指定された配列に、DataTableReader のすべての列に関するプロバイダ固有の型の情報を格納します。
パブリック メソッド GetSchemaTable オーバーライドされます。 DataTableReader の列メタデータを記述する DataTable を返します。
パブリック メソッド GetString オーバーライドされます。 指定した列の値を文字列として取得します。
パブリック メソッド GetType  現在のインスタンスの Type を取得します。 (Object から継承されます。)
パブリック メソッド GetValue オーバーライドされます。 指定した列の値をネイティブ形式で取得します。
パブリック メソッド GetValues オーバーライドされます。 DataTableReader の現在の行の値を格納する Objects の配列を取得します。
パブリック メソッド InitializeLifetimeService  対象のインスタンスの有効期間ポリシーを制御する、有効期間サービス オブジェクトを取得します。 (MarshalByRefObject から継承されます。)
パブリック メソッド IsDBNull オーバーライドされます。 列に格納されている値が存在しない値または欠損値かどうかを示す値を取得します。
パブリック メソッド NextResult オーバーライドされます。 DataTableReader を次の結果に進めます (存在する場合)。
パブリック メソッド Read オーバーライドされます。 DataTableReader を次のレコードに進めます。
パブリック メソッド ReferenceEquals  指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String を返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

DataTableReader クラス
System.Data 名前空間



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DataTableReader」の関連用語

DataTableReaderのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DataTableReaderのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS