CreateDataReader Method
Collapse the table of content
Expand the table of content

DataSet.CreateDataReader Method ()

 

Returns a DataTableReader with one result set per DataTable, in the same sequence as the tables appear in the Tables collection.

Namespace:   System.Data
Assembly:  System.Data (in System.Data.dll)

public DataTableReader CreateDataReader()

Return Value

Type: System.Data.DataTableReader

A DataTableReader containing one or more result sets, corresponding to the DataTable instances contained within the source DataSet.

In order to ensure the order of the result sets within the returned DataTableReader, if a DataTable within the DataSet is empty, it is represented by an empty result set within the returned DataTableReader.

The following example creates three DataTable instances, and adds each to a DataSet. The example then passes the filled DataSet to a procedure that calls the CreateDataReader method, and proceeds to iterate through all the result sets contained within the DataTableReader. The example displays the results in the Console window.

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

.NET Framework
Available since 2.0
Return to top
Show:
© 2016 Microsoft