a. Đổ dữ liệu vào Dataset hoặc dataTable
Sau khi có đối tượng DataAdapter với nội dung SelectCommand và thông tin về kết nối, chúng ta có thể sử dụng DataAdapter để lấy dữ liệu về cho các đối tượng chứa dữ liệu như DataTable, DataSet qua phương thức Fill. Phương thức trả về số mẩu tin lấy về được.
Đổ dữ liệu vào DataTable có sẵn: Fill(tên_datatable)
Đổ dữ liệu vào DataSet có sẵn. Dữ liệu được lấy về Dataset dưới dạng các DataTable, với tên mặc định là Table,Table1,Table2,…
Fill(tên_dataset)
Đổ dữ liệu vào DataSet cho bảng <tên_ DataTable>; nếu chưa có, bảng sẽ được tạo.
Fill(tên_dataset, tên_DataTable)
Trong đó tên_dataTable không nhất thiết phải trùng với tên của bảng trong cơ sở dữ liệu.
Ví dụ 5.8a: Sử dụng DataAdapter và DataSet để hiển thị thông tin về các hóa đơn bán hàng.
127 Trong ví dụ này ta thiết kế form chứa hai đối tượng. Một label với dòng text là Bảng kê chi tiết bán hàng và một đối tượng DataGridView. Ban đầu khi thêm DataGridView vào ta được form như hình thu nhỏ dưới đây:
Phần code của chương trình được viết như sau:
' khai báo namespace của dataset
Imports System.Data Thủ tục Load của form: Tao_ket_noi()
if Ket_noi.State = ConnectionState.Closed Then Ket_noi.Open()
End if
' tạo dataAdapter
Dim lenhSql = "select * from banhang"
Dim adapter1 As New SqlClient.SqlDataAdapter(lenhSql, _ Ket_noi)
' tạo và đổ dữ liệu vào dataset, đặt tên bảng mới
Dim dataset1 As New DataSet
adapter1.Fill(dataset1, "chitiethd")
' đặt thuộc tính cho lưới
DataGridView1.DataSource = dataset1
128 Kết quả chạy chương trình:
Ví dụ 5.8 b: Thiết kế form trong ví dụ 5.8a bằng cách sử dụng DataAdapter và DataTable:
Imports System.Data Public Class Form2
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' tạo dataAdapter lấy tên bo_doc_ghi
Dim lenhSQL As String = "select * from banhang"
Dim bo_doc_ghi As New SqlClient.SqlDataAdapter(lenhSQL, _ Chuoi_ket_noi)
' khai báo đối tượng dataTable
Dim dataTable1 As New DataTable
' đổ dữ liệu từ dataAdapter vào dataTable
bo_doc_ghi.Fill(dataTable1)
' gắn lưới với dataTable
DataGridView1.DataSource = dataTable1 End Sub
129