DataSet.CreateDataReaderとは? わかりやすく解説

DataSet.CreateDataReader メソッド ()

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

DataTable ごとに 1 つの結果セットを含む DataTableReader を返します。順序は、Tables コレクション内のテーブルでの出現順序と同じです。

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

Public Function CreateDataReader As
 DataTableReader
Dim instance As DataSet
Dim returnValue As DataTableReader

returnValue = instance.CreateDataReader
public DataTableReader CreateDataReader ()
public:
DataTableReader^ CreateDataReader ()
public DataTableReader CreateDataReader ()
public function CreateDataReader () : DataTableReader

戻り値
ソースの DataSet 内に格納されている DataTable インスタンスに対応する結果セットを 1 つ以上格納している DataTableReader。

解説解説

返される DataTableReader 内の結果セットの順序を確認するために、DataSet 内の DataTable が空である場合は、返される DataTableReader 内の空の結果セットによって表されます。

使用例使用例

3 つの DataTable インスタンスを作成し、それを DataSet に追加する例を次に示します。この例では、CreateDataReader メソッドを呼び出すプロシージャに入力済みの DataSet を渡した後、DataTableReader 内に格納されているすべての結果セットを反復処理します。コンソール ウィンドウに結果を表示します。

Sub Main()
  Dim dataSet As New DataSet
  ' Add some DataTables to the DataSet, including
  ' an empty DataTable:
  dataSet.Tables.Add(GetCustomers())
  dataSet.Tables.Add(New DataTable())
  dataSet.Tables.Add(GetProducts())
  TestCreateDataReader(dataSet)

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Sub TestCreateDataReader(ByVal
 dataSet As DataSet)
  ' Given a DataSet, retrieve a DataTableReader
  ' allowing access to all the DataSet's data:
  Using reader As DataTableReader = dataSet.CreateDataReader()
    Do
      If Not reader.HasRows Then
        Console.WriteLine("Empty DataTableReader")
      Else
        PrintColumns(reader)
      End If
      Console.WriteLine("========================")
    Loop While reader.NextResult()
  End Using
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
static void Main()
{
    DataSet dataSet = new DataSet();
    // Add some DataTables to the DataSet, including
    // an empty DataTable:
    dataSet.Tables.Add(GetCustomers());
    dataSet.Tables.Add(new DataTable());
    dataSet.Tables.Add(GetProducts());
    TestCreateDataReader(dataSet);

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static void TestCreateDataReader(DataSet
 dataSet)
{
    // Given a DataSet, retrieve a DataTableReader
    // allowing access to all the DataSet's data:
    using (DataTableReader reader = dataSet.CreateDataReader())
    {
        do
        {
            if (!reader.HasRows)
            {
                Console.WriteLine("Empty DataTableReader");
            }
            else
            {
                PrintColumns(reader);
            }
            Console.WriteLine("========================");
        } while (reader.NextResult());
    }
}

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();
    }
}

この例では、コンソール ウィンドウに次の出力を表示します。

1 Mary
2 Andy
3 Peter
4 Russ
========================
Empty DataTableReader
========================
1 Wireless Network Card
2 Hard Drive
3 Monitor
4 CPU
========================
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataSet.CreateDataReader メソッド (DataTable[])

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

1 つの DataTable につき 1 つの結果セットを含む DataTableReader を返します。

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

Public Function CreateDataReader ( _
    ParamArray dataTables As DataTable() _
) As DataTableReader
Dim instance As DataSet
Dim dataTables As DataTable()
Dim returnValue As DataTableReader

returnValue = instance.CreateDataReader(dataTables)
public DataTableReader CreateDataReader (
    params DataTable[] dataTables
)
public:
DataTableReader^ CreateDataReader (
    ... array<DataTable^>^ dataTables
)
public DataTableReader CreateDataReader (
    DataTable[] dataTables
)
public function CreateDataReader (
    ... dataTables : DataTable[]
) : DataTableReader

パラメータ

dataTables

DataTableReader で返される結果セットの順序を示す、DataTable の配列。

戻り値
ソースの DataSet 内に格納されている DataTable インスタンスに対応する結果セットを 1 つ以上格納している DataTableReader。返される結果セットの順序は、dataTables パラメータにより指定されます。

解説解説

返される DataTableReader 内の結果セットの順序を確認するために、DataSet 内の DataTable が空である場合は、返される DataTableReader 内の空の結果セットによって表されます。このオーバーロードされたバージョンを使用して DataTable インスタンスの一覧をパラメータとして指定できるため、返される DataTableReader における結果セットの順序を指定できます。

使用例使用例

DataTable の 3 つのインスタンスを作成し、それぞれ DataSet に追加するコンソール アプリケーションの例を次に示します。この例では、CreateDataReader メソッドを呼び出し、返された DataTableReader の内容を表示します。DataTableReader 内の結果セットの順序は、DataTable の順序によって制御されます。

Private emptyTable As DataTable
Private customerTable As DataTable
Private productTable As DataTable

Sub Main()
  Dim dataSet As New DataSet
  ' Add some DataTables to the DataSet, including
  ' an empty DataTable:

  emptyTable = New DataTable()
  productTable = GetProducts()
  customerTable = GetCustomers()

  dataSet.Tables.Add(customerTable)
  dataSet.Tables.Add(emptyTable)
  dataSet.Tables.Add(productTable)
  TestCreateDataReader(dataSet)

  Console.WriteLine("Press any key to continue.")
  Console.ReadKey()
End Sub

Private Sub TestCreateDataReader(ByVal
 dataSet As DataSet)
  ' Given a DataSet, retrieve a DataTableReader
  ' allowing access to all the DataSet's data.
  ' Even though the dataset contains three DataTables,
  ' this code will only display the contents of two of them,
  ' because the code has limited the results to the 
  ' DataTables stored in the tables array. Because this
  ' parameter is declared using the ParamArray keyword, 
  ' you could also include a list of DataTable instances 
  ' individually, as opposed to supplying an array of 
  ' DataTables, as in this example:
  Using reader As DataTableReader = _
    dataSet.CreateDataReader(productTable, emptyTable)
    Do
      If Not reader.HasRows Then
        Console.WriteLine("Empty DataTableReader")
      Else
        PrintColumns(reader)
      End If
      Console.WriteLine("========================")
    Loop While reader.NextResult()
  End Using
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
static DataTable customerTable;
static DataTable productTable;
static DataTable emptyTable;

static void Main()
{
    DataSet dataSet = new DataSet();

    // Add some DataTables to the DataSet, including
    // an empty DataTable:
    emptyTable = new DataTable();
    productTable = GetProducts();
    customerTable = GetCustomers();

    dataSet.Tables.Add(customerTable);
    dataSet.Tables.Add(emptyTable);
    dataSet.Tables.Add(productTable);
    TestCreateDataReader(dataSet);

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static void TestCreateDataReader(DataSet
 dataSet)
{
    // Given a DataSet, retrieve a DataTableReader
    // allowing access to all the DataSet's data.
    // Even though the dataset contains three DataTables,
    // this code will only display the contents of two of them,
    // because the code has limited the results to the 
    // DataTables stored in the tables array. Because this
    // parameter is declared using the ParamArray keyword, 
    // you could also include a list of DataTable instances 
    // individually, as opposed to supplying an array of 
    // DataTables, as in this example:
    using (DataTableReader reader = 
       dataSet.CreateDataReader(productTable, emptyTable))
    {
        do
        {
            if (!reader.HasRows)
            {
                Console.WriteLine("Empty DataTableReader");
            }
            else
            {
                PrintColumns(reader);
            }
            Console.WriteLine("========================");
        } while (reader.NextResult());
    }
}

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();
    }
}

この例では、コンソール ウィンドウに次のコードを表示します。

1 Wireless Network Card
2 Hard Drive
3 Monitor
4 CPU
========================
Empty DataTableReader
========================
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

DataSet.CreateDataReader メソッド

DataTable ごとに 1 つの結果セットを含む DataTableReader を返します。順序は、Tables コレクション内のテーブルでの出現順序と同じです。
オーバーロードの一覧オーバーロードの一覧

名前 説明
DataSet.CreateDataReader () DataTable ごとに 1 つの結果セットを含む DataTableReader を返します。順序は、Tables コレクション内のテーブルでの出現順序と同じです。

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

DataSet.CreateDataReader (DataTable[]) 1 つの DataTable につき 1 つの結果セットを含む DataTableReader を返します。

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

参照参照

関連項目

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

その他の技術情報

ADO.NET での DataSet の使用
ADO.NET での DataSet の使用
ADO.NET での DataSet の使用



英和和英テキスト翻訳

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

辞書ショートカット

カテゴリ一覧

すべての辞書の索引



Weblioのサービス

「DataSet.CreateDataReader」の関連用語




DataSet.CreateDataReaderのお隣キーワード
検索ランキング

   

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



DataSet.CreateDataReaderのページの著作権

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

©2026 GRAS Group, Inc.RSS