DataTableReader.NextResult Methode

Definition

Setzt den DataTableReader auf das nächste Resultset, sofern vorhanden.Advances the DataTableReader to the next result set, if any.

public:
 override bool NextResult();
public override bool NextResult ();
override this.NextResult : unit -> bool
Public Overrides Function NextResult () As Boolean

Gibt zurück

true, wenn ein anderes Resultsets vorhanden ist, andernfalls false.true if there was another result set; otherwise false.

Ausnahmen

Es wurde versucht, innerhalb eines geschlossenen DataTableReader zu navigieren.An attempt was made to navigate within a closed DataTableReader.

Beispiele

Im folgenden Beispiel erstellt die TestConstructor-Methode zwei DataTable-Instanzen.In the following example, the TestConstructor method creates two DataTable instances. Um diesen Konstruktor für die DataTableReader-Klasse zu veranschaulichen, erstellt das Beispiel einen neuen DataTableReader basierend auf einem Array, das die beiden DataTablesenthält, und führt einen einfachen Vorgang aus, der den Inhalt aus den ersten Spalten in das Konsolenfenster druckt.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. Um diese Anwendung zu testen, erstellen Sie eine neue Konsolenanwendung, und fügen Sie den Beispielcode in die neu erstellte Datei ein.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();
    }
}
Private Sub TestConstructor()
   ' Create two data adapters, one for each of the two
   ' DataTables to be filled.
   Dim customerDataTable As DataTable = GetCustomers()
   Dim productDataTable As DataTable = GetProducts()

   ' Create the new DataTableReader.
   Using reader As New DataTableReader( _
      New DataTable() {customerDataTable, productDataTable})

      ' Print the contents of each of the result sets.
      Do
         PrintColumns(reader)
      Loop While reader.NextResult()
   End Using

   Console.WriteLine("Press Enter to finish.")
   Console.ReadLine()

End Sub

Private Function GetCustomers() As DataTable
   ' Create sample Customers table, in order
   ' to demonstrate the behavior of the DataTableReader.
   Dim table As New DataTable

   ' Create two columns, ID and Name.
   Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
   table.Columns.Add("Name", GetType(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
End Function

Private Function GetProducts() As DataTable
   ' Create sample Products table, in order
   ' to demonstrate the behavior of the DataTableReader.
   Dim table As New DataTable

   ' Create two columns, ID and Name.
   Dim idColumn As DataColumn = table.Columns.Add("ID", GetType(Integer))
   table.Columns.Add("Name", GetType(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
End Function

Private Sub PrintColumns( _
   ByVal reader As DataTableReader)

   ' Loop through all the rows in the DataTableReader.
   Do While reader.Read()
      For i As Integer = 0 To reader.FieldCount - 1
         Console.Write(reader(i).ToString() & " ")
      Next
      Console.WriteLine()
   Loop
End Sub

Im Konsolenfenster werden folgende Ergebnisse angezeigt: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  

Hinweise

Wird verwendet, um mehrere Ergebnisse zu verarbeiten, die generiert werden können, indem eine DataTableReader über eine DataSet erstellt wird, die zwei oder mehr Tabellen enthält, oder ein Array, das mindestens zwei DataTable Instanzen enthält.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.

Ein neues DataTableReader wird auf dem ersten Ergebnis positioniert.A new DataTableReader is positioned on the first result.

Gilt für: