DataSet.CreateDataReader DataSet.CreateDataReader DataSet.CreateDataReader DataSet.CreateDataReader Method

Definizione

Restituisce una classe DataTableReader con un gruppo di risultati per la classe DataTable, nella stessa sequenza in cui le tabelle appaiono nell'insieme Tables.Returns a DataTableReader with one result set per DataTable, in the same sequence as the tables appear in the Tables collection.

Overload

CreateDataReader(DataTable[]) CreateDataReader(DataTable[]) CreateDataReader(DataTable[]) CreateDataReader(DataTable[])

Restituisce una classe DataTableReader con un gruppo di risultati per la classe DataTable.Returns a DataTableReader with one result set per DataTable.

CreateDataReader() CreateDataReader() CreateDataReader() CreateDataReader()

Restituisce una classe DataTableReader con un gruppo di risultati per la classe DataTable, nella stessa sequenza in cui le tabelle appaiono nell'insieme Tables.Returns a DataTableReader with one result set per DataTable, in the same sequence as the tables appear in the Tables collection.

Esempi

Questo esempio, un'applicazione Console, vengono creati tre DataTable istanze e di aggiungere ciascuno a un DataSet.This example, a Console application, creates three DataTable instances and adds each to a DataSet. L'esempio chiama il CreateDataReader metodo e consente di visualizzare il contenuto dell'oggetto restituito DataTableReader.The example calls the CreateDataReader method and displays the contents of the returned DataTableReader. Si noti che imposta l'ordine del risultato nel DataTableReader è controllato dall'ordine del DataTable istanze passati come parametri.Note that the order of the result sets in the DataTableReader is controlled by the order of the DataTable instances passed as parameters.

Nota

Questo esempio illustra come usare una delle versioni di overload del CreateDataReader.This example shows how to use one of the overloaded versions of CreateDataReader. Per altri esempi che potrebbero essere disponibili, vedere gli argomenti di overload singoli.For other examples that might be available, see the individual overload topics.

static DataTable customerTable;
static DataTable productTable;
static DataTable emptyTable;

static void Main()
{
    DataSet dataSet = new DataSet();

    // Add some DataTables to the DataSet, including
    // an empty DataTable:
    emptyTable = new DataTable();
    productTable = GetProducts();
    customerTable = GetCustomers();

    dataSet.Tables.Add(customerTable);
    dataSet.Tables.Add(emptyTable);
    dataSet.Tables.Add(productTable);
    TestCreateDataReader(dataSet);

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static void TestCreateDataReader(DataSet dataSet)
{
    // Given a DataSet, retrieve a DataTableReader
    // allowing access to all the DataSet's data.
    // Even though the dataset contains three DataTables,
    // this code will only display the contents of two of them,
    // because the code has limited the results to the 
    // DataTables stored in the tables array. Because this
    // parameter is declared using the ParamArray keyword, 
    // you could also include a list of DataTable instances 
    // individually, as opposed to supplying an array of 
    // DataTables, as in this example:
    using (DataTableReader reader = 
        dataSet.CreateDataReader(productTable, emptyTable))
    {
        do
        {
            if (!reader.HasRows)
            {
                Console.WriteLine("Empty DataTableReader");
            }
            else
            {
                PrintColumns(reader);
            }
            Console.WriteLine("========================");
        } while (reader.NextResult());
    }
}

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" });
    table.AcceptChanges();
    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" });
    table.AcceptChanges();
    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 emptyTable As DataTable
Private customerTable As DataTable
Private productTable As DataTable

Sub Main()
  Dim dataSet As New DataSet
  ' Add some DataTables to the DataSet, including
  ' an empty DataTable:

  emptyTable = New DataTable()
  productTable = GetProducts()
  customerTable = GetCustomers()

  dataSet.Tables.Add(customerTable)
  dataSet.Tables.Add(emptyTable)
  dataSet.Tables.Add(productTable)
  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.
  ' Even though the dataset contains three DataTables,
  ' this code will only display the contents of two of them,
  ' because the code has limited the results to the 
  ' DataTables stored in the tables array. Because this
  ' parameter is declared using the ParamArray keyword, 
  ' you could also include a list of DataTable instances 
  ' individually, as opposed to supplying an array of 
  ' DataTables, as in this example:
  Using reader As DataTableReader = _
      dataSet.CreateDataReader(productTable, emptyTable)
    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"})
  table.AcceptChanges()
  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"})
  table.AcceptChanges()
  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

L'esempio visualizza il codice seguente nella finestra della Console:The example displays the following code in the Console window:

Commenti

Per garantire l'ordine dei set di risultati all'interno di restituito DataTableReader, se un DataTable all'interno di DataSet è vuoto, viene rappresentato da un risultato vuoto impostati nell'oggetto restituito DataTableReader.In order to ensure the order of the result sets within the returned DataTableReader, if a DataTable within the DataSet is empty, it will be represented by an empty result set within the returned DataTableReader.

CreateDataReader(DataTable[]) CreateDataReader(DataTable[]) CreateDataReader(DataTable[]) CreateDataReader(DataTable[])

Restituisce una classe DataTableReader con un gruppo di risultati per la classe DataTable.Returns a DataTableReader with one result set per DataTable.

public:
 System::Data::DataTableReader ^ CreateDataReader(... cli::array <System::Data::DataTable ^> ^ dataTables);
public System.Data.DataTableReader CreateDataReader (params System.Data.DataTable[] dataTables);
member this.CreateDataReader : System.Data.DataTable[] -> System.Data.DataTableReader
Public Function CreateDataReader (ParamArray dataTables As DataTable()) As DataTableReader

Parametri

dataTables
DataTable[]

Matrice di DataTables che fornisce l'ordine dei gruppi di risultati da restituire nella classe DataTableReader.An array of DataTables providing the order of the result sets to be returned in the DataTableReader.

Restituisce

Classe DataTableReader contenente uno o più gruppi di risultati, che corrispondono alle istanze della classe DataTable contenuta nella classe DataSet di origine.A DataTableReader containing one or more result sets, corresponding to the DataTable instances contained within the source DataSet. I gruppi di risultati restituiti sono nell'ordine specificato dal parametro dataTables.The returned result sets are in the order specified by the dataTables parameter.

Esempi

Questo esempio, un'applicazione Console, vengono creati tre DataTable istanze e di aggiungere ciascuno a un DataSet.This example, a Console application, creates three DataTable instances and adds each to a DataSet. L'esempio chiama il CreateDataReader metodo e consente di visualizzare il contenuto dell'oggetto restituito DataTableReader.The example calls the CreateDataReader method and displays the contents of the returned DataTableReader. Si noti che imposta l'ordine del risultato nel DataTableReader è controllato dall'ordine del DataTable istanze passati come parametri.Note that the order of the result sets in the DataTableReader is controlled by the order of the DataTable instances passed as parameters. L'esempio visualizza i risultati nella finestra della Console.The example displays the results in the Console window.

static DataTable customerTable;
static DataTable productTable;
static DataTable emptyTable;

static void Main()
{
    DataSet dataSet = new DataSet();

    // Add some DataTables to the DataSet, including
    // an empty DataTable:
    emptyTable = new DataTable();
    productTable = GetProducts();
    customerTable = GetCustomers();

    dataSet.Tables.Add(customerTable);
    dataSet.Tables.Add(emptyTable);
    dataSet.Tables.Add(productTable);
    TestCreateDataReader(dataSet);

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

private static void TestCreateDataReader(DataSet dataSet)
{
    // Given a DataSet, retrieve a DataTableReader
    // allowing access to all the DataSet's data.
    // Even though the dataset contains three DataTables,
    // this code will only display the contents of two of them,
    // because the code has limited the results to the 
    // DataTables stored in the tables array. Because this
    // parameter is declared using the ParamArray keyword, 
    // you could also include a list of DataTable instances 
    // individually, as opposed to supplying an array of 
    // DataTables, as in this example:
    using (DataTableReader reader = 
       dataSet.CreateDataReader(productTable, emptyTable))
    {
        do
        {
            if (!reader.HasRows)
            {
                Console.WriteLine("Empty DataTableReader");
            }
            else
            {
                PrintColumns(reader);
            }
            Console.WriteLine("========================");
        } while (reader.NextResult());
    }
}

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 emptyTable As DataTable
Private customerTable As DataTable
Private productTable As DataTable

Sub Main()
  Dim dataSet As New DataSet
  ' Add some DataTables to the DataSet, including
  ' an empty DataTable:

  emptyTable = New DataTable()
  productTable = GetProducts()
  customerTable = GetCustomers()

  dataSet.Tables.Add(customerTable)
  dataSet.Tables.Add(emptyTable)
  dataSet.Tables.Add(productTable)
  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.
  ' Even though the dataset contains three DataTables,
  ' this code will only display the contents of two of them,
  ' because the code has limited the results to the 
  ' DataTables stored in the tables array. Because this
  ' parameter is declared using the ParamArray keyword, 
  ' you could also include a list of DataTable instances 
  ' individually, as opposed to supplying an array of 
  ' DataTables, as in this example:
  Using reader As DataTableReader = _
    dataSet.CreateDataReader(productTable, emptyTable)
    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

Commenti

Per garantire che l'ordine del risultato set all'interno di restituito DataTableReader, se un DataTable all'interno di DataSet è vuoto, è rappresentato da un risultato vuoto impostati nell'oggetto restituito DataTableReader.In order to ensure that 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. Poiché questa versione di overload consente di specificare un elenco delle DataTable istanze come parametri, è possibile specificare l'ordine in cui i set di risultati vengono visualizzati all'interno di restituito DataTableReader.Because this overloaded version allows you to supply a list of DataTable instances as parameters, you can specify the order in which the result sets appear within the returned DataTableReader.

Vedi anche

CreateDataReader() CreateDataReader() CreateDataReader() CreateDataReader()

Restituisce una classe DataTableReader con un gruppo di risultati per la classe DataTable, nella stessa sequenza in cui le tabelle appaiono nell'insieme Tables.Returns a DataTableReader with one result set per DataTable, in the same sequence as the tables appear in the Tables collection.

public:
 System::Data::DataTableReader ^ CreateDataReader();
public System.Data.DataTableReader CreateDataReader ();
member this.CreateDataReader : unit -> System.Data.DataTableReader
Public Function CreateDataReader () As DataTableReader

Restituisce

Classe DataTableReader contenente uno o più gruppi di risultati, che corrispondono alle istanze della classe DataTable contenuta nella classe DataSet di origine.A DataTableReader containing one or more result sets, corresponding to the DataTable instances contained within the source DataSet.

Esempi

L'esempio seguente crea tre DataTable le istanze e aggiungere ciascuno a un DataSet.The following example creates three DataTable instances, and adds each to a DataSet. Nell'esempio viene quindi compilato passato DataSet a una routine che chiama il CreateDataReader metodo e prosegue per scorrere tutti i set di risultati contenuti all'interno di DataTableReader.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. L'esempio visualizza i risultati nella finestra della Console.The example displays the results in the Console window.

static void Main()
{
    DataSet dataSet = 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();
}

private static void TestCreateDataReader(DataSet dataSet)
{
    // Given a DataSet, retrieve a DataTableReader
    // allowing access to all the DataSet's data:
    using (DataTableReader reader = dataSet.CreateDataReader())
    {
        do
        {
            if (!reader.HasRows)
            {
                Console.WriteLine("Empty DataTableReader");
            }
            else
            {
                PrintColumns(reader);
            }
            Console.WriteLine("========================");
        } while (reader.NextResult());
    }
}

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

Commenti

Per garantire l'ordine dei set di risultati all'interno di restituito DataTableReader, se un DataTable all'interno di DataSet è vuoto, è rappresentato da un risultato vuoto impostati nell'oggetto restituito DataTableReader.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.

Vedi anche

Si applica a