NextResult Method

DataTableReader.NextResult Method ()

 

Advances the DataTableReader to the next result set, if any.

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

public override bool NextResult()

Return Value

Type: System.Boolean

true if there was another result set; otherwise false.

Exception Condition
InvalidOperationException

An attempt was made to navigate within a closed DataTableReader.

Used to process multiple results that can be generated by creating a DataTableReader over a DataSet that contains two or more tables, or an array that contains two or more DataTable instances.

A new DataTableReader is positioned on the first result.

In the following example, the TestConstructor method creates two DataTableinstances. In order to demonstrate this constructor for the DataTableReader class, the sample creates a new DataTableReader based on an array that contains the two DataTables, and performs a simple operation, printing the contents from the first few columns to the console window. In order to test this application, create a new Console application, and paste the sample code into the newly created file.

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

The Console window displays the following results:

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

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