Bài giảng Microsoft Visual Basic - Bài 2: Các Đối Tượng Trong ADODB
• ADODB cung cấp đối tượng Connection để kết nối với CSDL.
Với Connection, người dùng có thể kết nối với nhiều loại CSDL khác nhau như Access, SQL Server, Oracle hay Excel, Mail
• Các thông tin về CSDL muốn kết nối tới cần phải cung cấp cho đối tượng
Connection thông qua thuộc tính ConnectionString.
ConnectionString bao gồm 2 thông tin chính là Provider và Nguồn dữ liệu, có thể cần cung cấp thêm là Username và Password với CSDL có bảo mật.

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Microsoft Visual Basic - Bài 2: Các Đối Tượng Trong ADODB", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Microsoft Visual Basic - Bài 2: Các Đối Tượng Trong ADODB
MICROSOFT VISUAL BASIC
I, Đối tượng Connection
1, Kết nối cơ sở dữ liệu
2, Thực hiện các câu lệnh SQL
II, Đối tượng RecordSet
1, Tạo nguồn dữ liệu cho ứng dụng
2, Các thuộc tính của RecordSet
3, Các hành động của RecordSet
III, Đối tượng Command
Bài 2 : Các Đối Tượng Trong ADODB
Menu Tiếp
1, Kết nối cơ sở dữ liệu
Public cnn As New ADODB.Connection
Public duong_dan As String, strProvider As String
Sub Mo_CSDL()
duong_dan = App.Path & "\CSDL.MDB"
strProvider = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & duong_dan
If cnn.State = 1 Then cnn.Close
cnn.CursorLocation = adUseClient
cnn.Open strProvider
End Sub
Đoạn lệnh viết trong Module
Đoạn lệnh viết trong thư tục Form_Load của Form khởi động
Private Sub Form_Load()
Call Mo_CSDL
End Sub
Menu Về
1, Kết nối cơ sở dữ liệu
• ADODB cung cấp đối tượng Connection để kết nối với CSDL.
Với Connection, người dùng có thể kết nối với nhiều loại CSDL khác nhau như
Access, SQL Server, Oracle hay Excel, Mail
• Các thông tin về CSDL muốn kết nối tới cần phải cung cấp cho đối tượng
Connection thông qua thuộc tính ConnectionString.
ConnectionString bao gồm 2 thông tin chính là Provider và Nguồn dữ liệu, có thể
cần cung cấp thêm là Username và Password với CSDL có bảo mật.
• Thuộc tính CursorLocation giúp chỉ định cách data provider cung cấp các chức
năng thao tác với CSDL với hai giá trị adUseServer và adUseClient.
• Sau khi đã gán giá trị cho ConnectionString, sử dụng hành động Open để mở
kết nối.
• Thuộc tính State giúp kiểm tra trạng thái của kết nối.
• adStateOpen [1] : kết nối đang mở
• adStateClosed [0] : kết nối đang đóng
Menu
Sau khi đã kết nối với CSDL, người dùng có thể làm việc ngay với dữ liệu
thông qua các câu truy vấn. Hành động Execcute của đối tượng Connection
giúp thực hiện một câu lệnh SQL
2, Thực hiện các câu truy vấn SQL
VD 1 : Thêm mới môn Ngoại Ngữ 1 vào bảng Monhoc
sql = "INSERT INTO MonHoc(MaMH,TenMH) VALUES('NN01','Ngoai Ngu 1')"
cnn.Execute sql
VD 2 : Sửa tên môn Toán Thực Hành thành môn Toán 2
sql = "UPDATE MonHoc SET TenMH='Toan 2' WHERE MaMH = 'T02'"
cnn.Execute sql
VD 3 : Xoá môn học Ngoại Ngữ 1 vừa nhập khỏi CSDL
sql = "DELETE FROM MonHoc WHERE MaMH = 'NN01'"
cnn.Execute sql
Menu Tiếp
• RecordSet đáp ứng các yêu cầu của người lập trình như hiển thị dữ liệu,
thêm, xoá, sửa dữ liệu, làm việc trên từng dòng dữ liệu thay vì một tập hợp
nhiều mẩu tin, Có thể coi RecordSet như đại diện của một bảng hay một view
trong CSDL.
• Người dùng có thể mở RecordSet để lấy dữ liệu từ một bảng hay nhiều bảng
trong CSDL bằng một câu truy vấn SQL hay đơn giản bằng cách chỉ ra tên bảng.
• Việc mở RecordSet được thực hiện qua hành động Open.
• Khai báo RecordSet như sau :
Dim As New ADODB.RecordSet
1, Tạo nguồn dữ liệu cho ứng dụng
Menu Về Tiếp
.Open [Source], [ActiveConnection], [CursorType], [LockType]
Cú pháp :
Mô tả :
• Source : Nội dung cần truy xuất
• ActiveConnection : Nội dung khai báo ConnectionString hoặc tên Connection
đang được mở
• CursorType : Phân loại recordset. Có các giá trị sau :
+ adOpenStatic [3] : mẩu tin tạo tại máy con. Không tự động cập nhật
+ adOpenDynamic [2] : mẩu tin tạo trên máy chủ. Tự động cập nhật.
+ adOpenKeySet [1] : không tự động cập nhật các mẩu tin
+ adOpenForewardOnle [0] : Chỉ di chuyển bằng MoveNext
Menu Về
• CursorType : Xác định cách khoá dữ liệu khi cập nhật. Có các giá trị sau :
+ adLockReadOnly : [1] chỉ cho phép đọc (luôn luôn khoá)
+ adLockOptimistic : [2] chỉ khoá khi cập nhật mẩu tin
+ adLockBatchOptimistic : [3] giống [2] nhưng cho phép cập nhật đồng thời
nhiều mẩu tin.
+ adLockPessimistic : [4] mẩu tin sẽ khoá ngay khi thực hiện Update hay
AddNew. chỉ dùng khi CursorLocation là adUseServer
Dim rsSinhVien As New ADODB.Recordset
Sub Lay_Nguon_SinhVien()
sql = "SINHVIEN"
If rsSinhVien.State = 1 Then rsSinhVien.Close
rsSinhVien.Open sql, cnn, 3, 3
End Sub
Ví dụ : Mở recordset với nguồn dữ liệu là bảng sinh viên.
Menu
2, Các thuộc tính của RecordSet
RecordCount : tổng số mẩu tin trong RecordSet
AbsolutePosition : vị trí mẩu tin hiện hành
BOF, EOF : vị trí đầu và cuối trong cấu trúc RecordSet
BOF Record 1 Record 2 Record n -1 Record n EOF
Menu Tiếp
3, Các hành động của RecordSet
a, Hiển thị dữ liệu :
• RecordSet được dùng làm nguồn dữ liệu (data source) cung cấp dữ liệu cho
các control khác để hiển thị thông tin trong chương trình.
• Các control liên kết dữ liệu với RecordSet thông qua hai thuộc tính DataSource
và DataField.
Dim rsSinhVien As New ADODB.Recordset
Sub Lay_Nguon_SinhVien()
sql = "SINHVIEN"
If rsSinhVien.State = 1 Then rsSinhVien.Close
rsSinhVien.Open sql, cnn, 3, 3
Set txtMaSV.DataSource = rsSinhVien
txtMaSV.DataField = "MaSV"
Set txtHoTenSV.DataSource = rsSinhVien
txtHoTenSV.DataField = "HoTen"
End Sub
Ví dụ : Lấy nguồn sinh viên và hiển thị lên TextBox
Menu Về Tiếp
3, Các hành động của RecordSet
b, Di chuyển qua lại giữa các bản ghi :
Sử dụng hành động Move
MoveFirst : di chuyển về bản ghi đầu tiên
Move Previous : di chuyển về bản ghi phía trước
MoveNext : di chuyển đến bản ghi kế tiếp
MoveLast : di chuyển tới bản ghi cuối cùng
Menu Về Tiếp
3, Các hành động của RecordSet
Dim rsSinhVien As New ADODB.Recordset
Private Sub cmdDau_Click()
rsSinhVien.MoveFirst
End Sub
Private Sub cmdTruoc_Click()
If rsSinhVien.AbsolutePosition > 1 Then
rsSinhVien.MovePrevious
End If
End Sub
Private Sub cmdSau_Click()
If rsSinhVien.AbsolutePosition < rsSinhVien.RecordCount Then
rsSinhVien.MoveNext
End If
End Sub
Private Sub cmdCuoi_Click()
rsSinhVien.MoveLast
End Sub
Menu Về Tiếp
3, Các hành động của RecordSet
c, Cập nhật dữ liệu :
AddNew : dùng để thêm mới 1 bản ghi
Update / UpdateBatch : chấp nhận cập nhật sự thay đổi
CancelUpdate / CancelBatch : bỏ qua sự thay đổFile đính kèm:
bai_giang_microsoft_visual_basic_bai_2_cac_doi_tuong_trong_a.pdf

