This documentation is archived and is not being maintained.

DataSet.CreateDataReader Method

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)

'Declaration
Public Function CreateDataReader As DataTableReader
'Usage
Dim instance As DataSet 
Dim returnValue As DataTableReader 

returnValue = instance.CreateDataReader()

Return Value

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

In order to ensure 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.

Sub Main()
  Dim dataSet As 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()
End Sub 

Private Sub TestCreateDataReader(ByVal dataSet As DataSet)
  ' Given a DataSet, retrieve a DataTableReader 
  ' allowing access to all the DataSet's data: 
  Using reader As DataTableReader = dataSet.CreateDataReader()
    Do
      If Not reader.HasRows Then
        Console.WriteLine("Empty DataTableReader")
      Else
        PrintColumns(reader)
      End If
      Console.WriteLine("========================")
    Loop While reader.NextResult()
  End Using 
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

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

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

.NET Framework

Supported in: 3.5, 3.0, 2.0

.NET Compact Framework

Supported in: 3.5, 2.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show: