Membuat DataReader

Kelas DataTable dan DataSet terdapat metode CreateDataReader yang mengembalikan isi dari DataTable atau isi dari koleksi objek DataSetTables sebagai satu atau lebih kumpulan hasil yang hanya dapat dibaca dan hanya meneruskan.

Contoh

Aplikasi konsol berikut membuat instans DataTable . Contoh kemudian meneruskan DataTable yang terisi ke prosedur yang memanggil metode CreateDataReader, yang mengiterasi hasil dalam DataTableReader.

static void Main()
{
    TestCreateDataReader(GetCustomers());
    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
}

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

static DataTable GetCustomers()
{
    // Create sample Customers table, in order
    // to demonstrate the behavior of the DataTableReader.
    DataTable table = new();

    // 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;
}

static void PrintColumns(DataTableReader reader)
{
    // Loop through all the rows in the DataTableReader
    while (reader.Read())
    {
        for (var i = 0; i < reader.FieldCount; i++)
        {
            Console.Write(reader[i] + " ");
        }
        Console.WriteLine();
    }
}
Sub Main()
    TestCreateDataReader(GetCustomers())
    Console.WriteLine("Press any key to continue.")
    Console.ReadKey()
End Sub

Private Sub TestCreateDataReader(ByVal dt As DataTable)
    ' Given a DataTable, retrieve a DataTableReader
    ' allowing access to all the tables's data:
    Using reader As DataTableReader = dt.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 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 output berikut di jendela konsol:

1 Mary
2 Andy
3 Peter
4 Russ

Lihat juga