Hướng dẫn lập trình VB.NET - Chương 19: Làm quen với ADO.NET

Nội dung thảo luận:

- Sử dụng Server Explorer để thiết lập kết nối đến cơ sở dữ liệu

- Tạo bộ điều phối dữ liệu (data adapter) trích xuất thông tin trong csdl

- Sử dụng TextBox, Label và nút nhấn để hiển thị thông tin trong csdl

- Tạo tập dữ liệu dataset trình bày dl của một hay nhiều bảng trong csdl

- Sử dụng điều khiển duyệt các thông tin trong csdl

Trong chương này chúng ta sẽ sử dụng cách lập trình với ADO.NET để thao tác với csdl. Ta cũng tìm hiểu cách thao tác vói csdl bằng các điều khiển như TextBox, data adapter, label, button,

Chú ý:

- ADO.NET là mô hình lập trình truy xuất dl chung cho tất cả các ngôn ngữ và chương trình Windows.

- Chúng ta dùng các thành phần như DataSet, DataAdapter để thao tác với csdl thay cho các thành phần cũ như Data Control và ADO Data Control.

- Định dạng dữ liệu trong ADO.NET tuân theo chuẩn XML nên dễ tích hợp với các ứng dụng web.

 

doc15 trang | Chuyên mục: Visual Basic 6.0 | Chia sẻ: dkS00TYs | Lượt xem: 2674 | Lượt tải: 3download
Tóm tắt nội dung Hướng dẫn lập trình VB.NET - Chương 19: Làm quen với ADO.NET, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
hấn vào nút Query Builder… để VS liệt kê các bảng của csdl để bạn chọn.
Bạn hãy nhấn vào bảng Instructors như hình H.2 và nhấn Add, rồi ấn Close để đóng cửa sổ này lại.
Bạn thấy trong bảng Instructors có các ô CheckBox tương ứng với các trường. Query sẽ tạo câu lệnh tương ứng để rút thông tin của bảng. Trong bài tập này chúng ta chỉ rút thông tin từ một cột trong bảng. Bạn nhấn vào cột Instructor để chọn nó như hình H.3 và nhấn OK. Chúng ta đã tạo xong câu lệnh SQL để rút dữ liệu.
H.1. Cửa sổ soạn thảo mã SQL
H.2. Query Builder
H.3. Chọn trường để xây dựng câu lệnh SQL
H.4. Giao diện Form
Sau khi nhấn OK, một cửa sổ Generate The SQL Statement hiện ra hiển thị câu lệnh SQL ta vừa tạo. Bạn nhấn Finish đê hoàn thành việc tạo đối tượng điều phối. Lúc này giao diện có dạng như hình H.4
1.5. Làm việc với DataSet
Tiếp theo ta tạo ra đối tượng trình diễn dữ liệu cho người dùng thao tác. Đối tượng này là DataSet. Nó là hình ảnh có được từ DataAdapter. Nó chỉ là ảnh của csdl nên mọi thao tác của người dùng sẽ chưa ảnh hưởng đến csdl cho đến khi có yêu cầu cập nhật.
Trong phần tiếp theo của bài tập này chúng ta sẽ tạo đối tượng DataSet trình diễn thông tin trong cột Instructor của bảng Instructors trong csdl Students.mdb.
Bạn nhấp chuột lên form1 để chọn nó. Nếu không chọn nó thì các lệnh tạo DataSet sẽ không hiển thị trên menu.
Chọn Data | Generate DataSet từ menu để làm xuất hiện hộp thoại Generate DataSet như hình:
Bạn đặt tên nào tùy thích tại ô New, mình chọn là DsInstructors. Chọn ô checkBox Add this dataset to the designer để VS đưa dataser vào khay công cụ.
Nhấn OK và đối tượng DataSet DsINstructors được tạo trên khay công cụ. Lúc này VB.NET sẽ tự thêm vào một file có tên DsInstructors.xsd trong cửa sổ Solution Explorer. File này chứa các thông tin về dữ liệu theo khuôn dạng XML:
H.5. Đối tượng DsInstructors1 được tạo trên khay hệ thống
Tiếp theo ta sẽ học cách để hiển thị dữ liệu trong dataset này lên form.
2. Sử dụng các điều khiển ràng buộc dữ liệu
Tiếp theo ta sẽ dùng các điều khiển quen thuộc như Textbox, Label, Button để trình bày cơ sở dữ liệu lên form. Để trình bày được như thế ta cần phải làm một thao tác gọi là ràng buộc dữ liệu (data binding), nghĩa là dữ liệu hiển thị lên trong các điều khiển sẽ phụ thuộc vào nguồn dữ liệu có trong DataSet hay DataAdapter.
Bạn có thể ràng buộc dữ liệu với các điều khiển sau: TextBox, Label, ListBox, ComboBox, RadioButon, DataGrid và PictureBox. Trong đó đặc biệt và hữu ích nhất có lẽ là DataGrid vì nó cho phép bạn hiển thị toàn bộ nội dung của DataSet.
Trong bài tập này, chúng ta sẽ ràng buộc dữ liệu vào TextBox để hiển thị thông tin trong bảng Instructors của csdl Students.mdb.
Bạn thiết kế giao diện form như hình trên. Trong đó thuộc tính của các điều khiển như sau:
Button First: Name – btnFirst, enable – False
Button Last: Name – btnLast, enable – False
Button Next: Name – btnNext, enable – False
Button Previous: Name – btnPrevious, enable – False
Button Load Data: Name – btnLoadData
TextBox1: Name - txtInstructors
Các điều khiển còn lại có thuộc tính như hình.
Bây giờ ta sẽ tiến hành ràng buộc dữ liệu là các trường (cột dữ liệu – field) vào textbox txtInstructors.
Để làm điều này, bạn chọn ô textbox và mở Properties của nó ra. Click vào dấu (+) bên cạnh nhánh thuộc tính DataBindings và chọn ô text, Click vào nút mũi tên đi xuống và bạn có thể nhìn thấy nguồn dữ liệu DsInstructors1 hiển thị trong danh sách:
Nhấn chọn cột Instructor để chỉ định trường này sẽ hiển thị trong ô textbox txtInstructor. Như vậy ta đã ràng buộc xong, tiếp theo cần viết mã để xuất dữ liệu khi chương trình thực thi.
Để làm được điều đó, chúng ta tạo thủ tục btnLoadData_Click bằng cách trở lại cửa sổ thiết kế form và double click vào nút Load Data rồi nhập đoạn mã sau:
 DsInstructors1.Clear()
 OleDbDataAdapter1.Fill(DsInstructors1)
 btnFirst.Enabled = True
 btnLast.Enabled = True
 btnNext.Enabled = True
 btnPrevious.Enabled = True
Chúng ta viết mã để xóa sạch dữ liệu mà DataSet DsInstructors1 nắm giữ trước đây. Tiếp theo khiến bộ điều phối DataAdapter1 điền dữ liệu vào đối tượng DataSet DsInstructors1 mà chúng ta đã tạo ra ở bước 3 bằng phương thức Fill().
Chạy thử chương trình:
Bạn nhấn F5 để kiểm thử chương trình. Khi chương trình chạy, bạn nhắp vào nút Load Data để chương trình hiển thị bản ghi đầu tiên của trường Instructor trong bảng dữ liệu:
Tiếp theo chúng ta sẽ mở rộng một số chức năng khác của ứng dụng cơ sở dữ liệu thuần túy như duyệt qua các bản ghi, đếm và hiển thị số bản ghi hiện hành.
Như vậy quá trình thao tác csdl có thể tóm tắt như sau: thứ nhất, tạo kết nối đến csdl cần truy xuất; thứ hai tạo đối tượng điều phối DataAdapter; thứ ba, tạo đối tượng trình diễn DataSet; cuối cùng là ràng buộc dữ liệu vào các điều khiển cho phép ràng buộc. Nếu trong các bài tập yêu cầu cập nhật, thống kê, tìm kiếm, … thì còn có bước nữa là tiến hành xử lý các thao tác cập nhật, thống kê, tìm kiếm, … theo yêu cầu của bài.
3. Tạo các điều khiển duyệt xem dữ liệu
Trong bài tập này, chúng ta mới chỉ dừng lại ở việc ràng buộc dữ liệu và hiển thị được bản ghi đầu tiên vào ô textbox mà thôi. Trong phần tiếp theo chúng ta sẽ tạo ra các nút cho phép duyệt qua các bản ghi khác nhau, xem bản ghi đầu tiên cũng như cuối cùng.
ADO.NET cho phép quản lý và duyệt qua các bản ghi (record) bằng đối tượng CurrentManager. Với đối tượng này bạn có thể biết được vị trí hiện hành, đi đến mẩu tin sau cùng hay trở về mẩu tin đầu tiên cũng như đến mẩu tin kế tiếp hay ở trước. Mỗi DataSet đều có sẵn đối tượng CurrentManager và mỗi đối tượng form đều có thuộc tính BindingContext theo dõi tất cả đối tượng CurrentManager trên form.
Bây giờ trở lại bài tập của chúng ta. Trong phần trước chúng ta đã tạo ra bốn nút nhấn mang tên First, Last, Next, Previous. Giờ chúng ta sẽ viết mã cho chúng sử dụng đối tượng BindingContext, CurrentManager để duyệt qua các bản ghi.
Trước hết tạo thủ tục btnFirst_Click với nội dung như sau:
	 Me.BindingContext(DsInstructors1, _
 "Instructors").Position = 0
 btnFirst.Enabled = False
 btnNext.Enabled = True
 btnLast.Enabled = True
Cú pháp này hiển thị bản ghi đầu tiên của DsInstructors1 sử dụng đối tượng BindingContext. Nó gán giá trị 0 cho thuộc tính Position để con trỏ hiện hành của dữ liệu chuyển đến bản ghi đầu tiên.
Tạo thủ tục btnLast_Click và nhập đoạn mã sau:
	 'Đếm tổng số bản ghi
 Dim tongsobanghi As Integer = Me.BindingContext _
 (DsInstructors1, "Instructors").Count
 'Chuyển con trỏ đến bản ghi cuối cùng
 Me.BindingContext(DsInstructors1, _
 "Instructors").Position = tongsobanghi - 1
 btnLast.Enabled = False
 btnFirst.Enabled = True
 btnPrevious.Enabled = True
 btnNext.Enabled = False
Tạo thủ tục btnNext_Click và nhập vào đoạn mã sau:
	 'Đếm số bản ghi hiện hành
 Dim tongsobanghi As Integer = Me.BindingContext _
 (DsInstructors1, "Instructors").Count
 'Nếu chưa phải là bản ghi cuối thì next lên 1
 If Me.BindingContext(DsInstructors1, _
 "Instructors").Position < tongsobanghi - 1 Then
 Me.BindingContext(DsInstructors1, _
 "Instructors").Position += 1
 btnFirst.Enabled = True
 btnPrevious.Enabled = True
 btnLast.Enabled = True
 Else
 btnNext.Enabled = False
 btnLast.Enabled = False
 btnFirst.Enabled = True
 btnPrevious.Enabled = True
 End If
Thủ tục btnPrevious_Click:
	 'Nếu chưa phải là bản ghi đầu thì lùi lại 1
 If Me.BindingContext(DsInstructors1, _
 "Instructors").Position > 0 Then
 Me.BindingContext(DsInstructors1, _
 "Instructors").Position -= 1
 btnFirst.Enabled = True
 btnLast.Enabled = True
 btnNext.Enabled = True
 Else
 btnFirst.Enabled = False
 btnPrevious.Enabled = False
 End If
Vậy là chúng ta đã tạo xong các nút cho phép duyệt qua các bản ghi. Bây giờ chúng ta chạy thử chương trình.
Chạy chương trình:
Bạn nhấn F5 để chạy chương trình. Ấn nút Load Data để hiển thị dữ liệu vào textbox. Ấn các phím để duyệt qua các bản ghi trong cơ sở dữ liệu.
Bạn nhấn nút Close ở góc phải trên của form để đóng chương trình lại.
Bây giờ để cụ thể hơn nữa chúng ta sẽ tạo điều khiển label cho hiển thị vị trí bản ghi hiện hành để người dùng tiện quan sát.
4. Hiển thị vị trí của bản ghi hiện hành
Ngoài việc cung cấp cơ chế duyệt xem các bản ghi, ta cũng cần cho người dùng biết đó là bản ghi thứ mấy. Bây giờ chúng ta sẽ thêm một nhãn Label để hiển thị thứ tự của bản ghi.
Bạn mở thiết kế form và thêm vào một nhãn label1 có thuộc tính Name là lblIndexOfRecord, thuộc tính Text của nhãn là “Record 0 of 0”. Giao diện như hình:
Ta tạo một thủ tục có tên count() ở ngay dưới phát biểu khai báo form1 như sau:
 Private Sub Count()
 Dim tongsobanghi, banghihienhanh As Integer
 tongsobanghi = Me.BindingContext _
 (DsInstructors1, "Instructors").Count
 banghihienhanh = Me.BindingContext _
 (DsInstructors1, "Instructors").Position + 1
 lblIndexOfRecord.Text = "Record " & _
 banghihienhanh.ToString & "Of " & tongsobanghi.ToString
 End Sub
Thủ tục này sẽ gán thuộc tính count của đối tượng BindingContext vào biến tongsobanghi và thuộc tính Position của nó cho biến banghihienhanh nhưng cộng thêm 1 vì thứ tự bản ghi trong bảng dữ liệu được tính từ 0. Sau đó hai giá trị của hai biến trên được gán cho thuộc tính Text của điều khiển Label lblIndexOfRecord.
Để thủ tục này phát huy tác dụng thì bạn sẽ thêm lời gọi thủ tục này trong các thủ tục khác như btnFirst_Click, btnLast_Click, btnPrevious_Click, btnNext_Click như sau:
	Count()
Chương trình của chúng ta đến đây là hoàn thiện. Bạn có thể chạy thử để kiểm tra.
Chạy chương trình:
Bạn nhấn F5 để chạy chương trình. Ấn nút Load Data để hiển thị dữ liệu. Sau đó bạn hãy nhấn các nút di chuyển để duyệt qua các bản ghi và xem thứ tự của bản ghi đó trong bảng dữ liệu, kết quả:
5. Tổng kết chương 19
Bạn làm bảng tổng kết những gì đã học. Tổng kết một lần nữa các bước để có thể trình diễn dữ liệu trong form.
Đây mới chỉ là kỹ thuật lập trình đơn giản nhất của ADO.NET, trong phần sắp tới chúng ta sẽ học về DataGrid để trình diễn dữ liệu ở mức độ cao hơn.

File đính kèm:

  • docHướng dẫn lập trình VB.NET - Chương 19_Làm quen với ADO.NET.doc
Tài liệu liên quan