Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

DataTableReader.NextResult Method

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

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

'Declaration
Public Overrides Function NextResult As Boolean

Return Value

Type: System.Boolean
true if there was another result set; otherwise false.

Implements

IDataReader.NextResult

ExceptionCondition
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 DataTable instances. 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 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

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

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show:
© 2015 Microsoft