Bagikan melalui


DataSet.CreateDataReader Metode

Definisi

Mengembalikan DataTableReader dengan satu tataan hasil per DataTable, dalam urutan yang sama seperti tabel yang muncul dalam Tables koleksi.

Overload

CreateDataReader(DataTable[])

Mengembalikan DataTableReader dengan satu tataan hasil per DataTable.

CreateDataReader()

Mengembalikan DataTableReader dengan satu tataan hasil per DataTable, dalam urutan yang sama seperti tabel yang muncul dalam Tables koleksi.

Contoh

Contoh ini, aplikasi Konsol, membuat tiga DataTable instans dan menambahkan masing-masing ke DataSet. Contoh memanggil CreateDataReader metode dan menampilkan konten yang dikembalikan DataTableReader. Perhatikan bahwa urutan tataan hasil di dikontrol DataTableReader oleh urutan DataTable instans yang diteruskan sebagai parameter.

Catatan

Contoh ini menunjukkan cara menggunakan salah satu versi yang kelebihan beban .CreateDataReader Untuk contoh lain yang mungkin tersedia, lihat topik kelebihan beban individual.

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

Contoh menampilkan kode berikut di jendela Konsol:

Keterangan

Untuk memastikan urutan tataan hasil dalam yang dikembalikan DataTableReader, jika dalam DataTableDataSet kosong, itu akan diwakili oleh hasil kosong yang diatur dalam yang dikembalikan DataTableReader.

CreateDataReader(DataTable[])

Sumber:
DataSet.cs
Sumber:
DataSet.cs
Sumber:
DataSet.cs

Mengembalikan DataTableReader dengan satu tataan hasil 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

Parameter

dataTables
DataTable[]

Array DataTable yang menyediakan urutan tataan hasil yang akan dikembalikan di DataTableReader.

Mengembalikan

Yang DataTableReader berisi satu atau beberapa tataan DataTable hasil, sesuai dengan instans yang terkandung dalam sumber DataSet. Tataan hasil yang dikembalikan berada dalam urutan yang ditentukan oleh dataTables parameter .

Contoh

Contoh ini, aplikasi Konsol, membuat tiga DataTable instans dan menambahkan masing-masing ke DataSet. Contoh memanggil CreateDataReader metode dan menampilkan konten yang dikembalikan DataTableReader. Perhatikan bahwa urutan tataan hasil di dikontrol DataTableReader oleh urutan DataTable instans yang diteruskan sebagai parameter. Contoh menampilkan hasilnya di jendela Konsol.

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

Keterangan

Untuk memastikan bahwa urutan tataan hasil dalam yang dikembalikan DataTableReader, jika dalam DataTableDataSet kosong, itu diwakili oleh hasil kosong yang diatur dalam hasil yang dikembalikan DataTableReader. Karena versi kelebihan beban ini memungkinkan Anda untuk menyediakan daftar DataTable instans sebagai parameter, Anda dapat menentukan urutan di mana kumpulan hasil muncul dalam yang dikembalikan DataTableReader.

Lihat juga

Berlaku untuk

CreateDataReader()

Sumber:
DataSet.cs
Sumber:
DataSet.cs
Sumber:
DataSet.cs

Mengembalikan DataTableReader dengan satu tataan hasil per DataTable, dalam urutan yang sama seperti tabel yang muncul dalam Tables koleksi.

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

Mengembalikan

Yang DataTableReader berisi satu atau beberapa tataan DataTable hasil, sesuai dengan instans yang terkandung dalam sumber DataSet.

Contoh

Contoh berikut membuat tiga DataTable instans, dan menambahkan masing-masing ke DataSet. Contoh kemudian meneruskan yang diisi DataSet ke prosedur yang memanggil CreateDataReader metode , dan melanjutkan untuk melakukan iterasi melalui semua kumpulan hasil yang terkandung dalam DataTableReader. Contoh menampilkan hasilnya di jendela Konsol.

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

Keterangan

Untuk memastikan urutan tataan hasil dalam yang dikembalikan DataTableReader, jika dalam DataTableDataSet kosong, itu diwakili oleh hasil kosong yang diatur dalam yang dikembalikan DataTableReader.

Lihat juga

Berlaku untuk