Cũng như Command, chúng ta cần khai báo rõ DataAdapter sử dụng theo Data Provider nào: SqlDataAdapter hoặc OledbDataAdapter. Hai lớp này thuộc không gian tên:
System.Data.OleDb.OleDbDataAdapter System.Data.SqlClient.SqlDataAdapter Để tạo DataAdapter ta có thể dùng các cú pháp sau: New <loại>DataAdapter()
Hoặc
New <loại>DataAdapter(đối_tượng_SelectCommand)
với đối_tượng_SelectCommand đã định nghĩa sẵn. Hoặc
New <loại>DataAdapter(lệnhSQL, đối_tượng_Connection)
Hoặc
New <loại> DataAdapter (lệnhSQL,đối_tượng_ConnectionString)
Ví dụ: Để tạo DataAdapter lấy dữ liệu trong bảng VatTu của cơ sở dữ liệu Access có tên C:\QlHanghoa.mdb ta có thể sử dụng các lệnh dưới đây:
Mẫu 1:
Dim bo_doc_ghi As New OledbDataAdapter() bo_doc_ghi.SelectCommand.CommandText = _ "Select * from VATTU"
bo_doc_ghi.SelectCommand.Connection.ConnectionString = _ "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =
C:\QlHanghoa.mdb"
Mẫu 2:
125 "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = " & _ C:\QlHanghoa.mdb")
Dim bo_doc_ghi As New OledbDataAdapter(lenh)
Mẫu 3:
Dim ketnoi As New OledbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source = C:\QlHanghoa.mdb")
Dim bo_doc_ghi As New OledbDataAdapter("Select * from VATTU", ketnoi)
Hoặc mẫu 4:
Dim chuoi As String = "Provider = Microsoft.Jet.OLEDB.4.0; " & _ "Data Source= C:\QlHanghoa.mdb"
Dim bo_doc_ghi As New OledbDataAdapter("Select * from VATTU", _ chuoi)
Để tạo DataAdapter lấy dữ liệu từ bảng Banhang của cơ sở dữ liệu SQL có tên De1 trên server HTC-VAIO\Huyen ta có thể sử dụng đoạn mã dưới đây:
Dim chuoi As String = "server = HTC-VAIO\Huyen; " & _ "database=De1;integrated security=SSPI"
Dim lenhsql = "select * from banhang"
Dim adapter1 As New SqlClient.SqlDataAdapter(lenhsql, chuoi)
Nếu trong Module1 đã định nghĩa chuoi_ket_noi là biến tầm vực module (ví dụ 5.2b) thì ta có thể viết lại đoạn lệnh trên như sau:
Dim lenhsql = "select * from banhang"
Dim adapter1 As New SqlClient.SqlDataAdapter(lenhsql, _ chuoi_ket_noi)
Hoặc tạo DataAdapter thông qua kết nối Connection đã được tạo với thủ tục Tao_ket_noi() trong ví dụ 5.3:
Tao_ket_noi()
If Ket_noi.State = ConnectionState.Closed Then Ket_noi.Open()
Dim lenhsql As String = "select * from banhang"
Dim adapter1 As New SqlClient.SqlDataAdapter(lenhsql, Ket_noi)
DataAdapter chỉ thao tác được với nguồn dữ liệu qua một đối tượng Connection đang kết nối, nhưng điểm đặc biệt của DataAdapter là khi Connection chưa mở, DataAdapter sẽ tự động mở kết nối khi cần và tự động đóng lại, ngược lại, với một Connection đã mở sẵn, chúng ta phải tự đóng kết nối, DataAdapter không thực hiện đóng tự động.
126