英語で読む

次の方法で共有


DataSet.CreateDataReader メソッド

定義

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

オーバーロード

CreateDataReader(DataTable[])

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

CreateDataReader()

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

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

注意

この例では、 のオーバーロードされたバージョンの 1 つを使用する方法を示します CreateDataReader。 使用可能なその他の例については、個々のオーバーロードに関するトピックを参照してください。

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" });
    table.AcceptChanges();
    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" });
    table.AcceptChanges();
    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内の結果セットの順序を確認するために、 内DataSetの が空の場合DataTable、返される DataTableReader内の空の結果セットによって表されます。

CreateDataReader(DataTable[])

ソース:
DataSet.cs
ソース:
DataSet.cs
ソース:
DataSet.cs

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

public System.Data.DataTableReader CreateDataReader (params System.Data.DataTable[] dataTables);

パラメーター

dataTables
DataTable[]

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

戻り値

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

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

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

注釈

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

CreateDataReader()

ソース:
DataSet.cs
ソース:
DataSet.cs
ソース:
DataSet.cs

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

public System.Data.DataTableReader CreateDataReader ();

戻り値

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

次の例では、3 つの DataTable インスタンスを作成し、 にそれぞれを DataSet追加します。 次に、 メソッドを呼び出すプロシージャに塗りつぶ DataSet された を CreateDataReader 渡し、 内 DataTableReaderに含まれるすべての結果セットを反復処理します。 次の使用例は、[コンソール] ウィンドウに結果を表示します。

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

注釈

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

こちらもご覧ください

適用対象

.NET 9 およびその他のバージョン
製品 バージョン
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1