DataTableReader.NextResult Метод

Определение

Перемещает DataTableReader к следующему результирующему набору (при его наличии).

public override bool NextResult ();

Возвращаемое значение

Значение true при наличии другого результирующего набора; в обратном случае – значение false.

Исключения

Предпринята попытка перемещения в закрытом объекте DataTableReader.

Примеры

В следующем примере метод TestConstructor создает два DataTable экземпляра. Чтобы продемонстрировать этот конструктор для DataTableReader класса , пример создает новый DataTableReader на основе массива, содержащего два DataTables, и выполняет простую операцию, выводя содержимое из первых нескольких столбцов в окно консоли. Чтобы протестировать это приложение, создайте консольное приложение и вставьте пример кода в созданный файл.

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

В окне Консоль отображаются следующие результаты:

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

Комментарии

Используется для обработки нескольких результатов, которые могут быть созданы путем создания DataTableReader поверх DataSet , содержащих две или более таблиц, или массива, содержащего два или более DataTable экземпляров.

Новый DataTableReader объект позиционируется на первом результате.

Применяется к