Export (0) Print
Expand All

DataSet.CreateDataReader Method ()

Note: This method is new in the .NET Framework version 2.0.

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 ()
public DataTableReader CreateDataReader ()
public function CreateDataReader () : DataTableReader

Return Value

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

In order to ensure that 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();
    


The example displays the following output in the Console window:

1 Mary
2 Andy
3 Peter
4 Russ
========================
Empty DataTableReader
========================
1 Wireless Network Card
2 Hard Drive
3 Monitor
4 CPU
========================

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

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

.NET Compact Framework

Supported in: 2.0

Community Additions

ADD
Show:
© 2014 Microsoft