H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
Ch
ươ 19: ng
Làm quen v i ADO.NET ớ
--------oOo--------
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. ụ ứ
1. L p trình v i ADO.NET
ớ
ậ
C s d li u r t quan tr ng trong vi c l u tr thông tin. D li u có r t nhi u ngu n và ơ ở ữ ệ ấ ệ ư ữ ệ ữ ề ấ ọ ồ
đa d ng. VB.NET đ c thi ạ ượ ế ế ớ ớ t k v i m c đích truy xu t, hi n th , phân tích csdl. V i ụ ể ấ ị
ADO.NET, b n có th truy xu t đ n m i h csdl theo cùng cách th c và mã ch ấ ế ọ ệ ứ ể ạ ươ ng
trình nh nhau. ư
1.1. Thu t ng v c s d li u ữ ề ơ ở ữ ệ ậ
Chúng ta hãy làm quen v i m t s thu t ng v csdl tr c khi th c s thao tác v i nó. ộ ố ữ ề ậ ớ ướ ự ự ớ
Csdl là m t file t ch c thông tin thành các b ng g i là Table. ộ ổ ứ ả ọ
i bao g m nhi u hàng và c t. C t th ng đ c g i là tr ng (field) và M i b ng l ỗ ả ạ ề ồ ộ ộ ườ ượ ọ ườ
dòng đ c g i là m u tin (record). ượ ọ ẩ
Biên so n: Ph m Đ c L p - 1 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
Mô hình truy xu t csdl trong ADO.NET có th nói nh sau: tr c h t là thi ư ể ấ ướ ế ế ậ ế t l p k t
ng đi u ph i (data adapter) đ c t o ra đ truy v n dl t n i đ n csdl. Ti p theo đ i t ố ế ố ượ ế ề ố ượ ạ ể ấ ừ
các b ng. Sau đó t o các đ i t ng DataSet ch a b ng dl b n mu n trích dl. ố ượ ả ạ ứ ả ạ ố
DataSet ch t o b n sao c a b ng dl mà thôi. Cu i cùng là gán thông tin trong DataSet ỉ ạ ủ ả ả ố
vào các đ i t ng hi n th trên Form nh TextBox, Label, Button, DataGrid,… ố ượ ư ể ị
1.2. Làm vi c v i c s d li u ệ ớ ơ ở ữ ệ Access
Trong ph n ti p theo chúng ta s s d ng Server Explorer đ thi ẽ ử ụ ế ể ầ ế ậ t l p k t n i đ n csdl ế ố ế
t cách k t n i và đ a d li u vào của MS Access có tên Students.mdb. Sau khi đã bi ế ế ố ữ ệ ư
dataset, chúng ta s b t đ u xây d ng và tích h p chúng vào giao di n c a form. ẽ ắ ầ ệ ủ ự ợ
B n t o m i m t Solution có tên MyADOForm và thêm vào m t d án cùng tên. ộ ự ạ ạ ớ ộ
B n ch n View | Server Explorer t menu đ hi n c a s Server Explorer nh hình: ạ ọ ừ ể ệ ử ổ ư
Đây là công c đ h a cho phép k t n i đ n csdl c c b , trên server theo mô hình client ế ố ế ụ ồ ọ ụ ộ
ủ – server. Ta cũng có th s d ng nó đ xem c u trúc trong csdl, xem thu c tính c a ể ử ụ ể ấ ộ
ng và m u tin trong csdl. B n có th n m kéo các k t n i và b ng, ki u dl c a tr ả ủ ể ườ ế ố ể ắ ẩ ạ
ng dl cho ch ng trình. b ng dl trong c a s này đ t o ra đ i t ả ử ổ ể ạ ố ượ ươ
Ti p theo b n t o k t n i đ n csdl b ng cách click vào nút Connect To DataBase ế ố ế ạ ạ ế ằ
trong c a s Server Explorer. M t h p tho i Choose Data Source hi n ra cho phép ta ạ ử ổ ộ ộ ệ
ch n ngu n dl nh hình: ư ọ ồ
Biên so n: Ph m Đ c L p - 2 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
ệ B n ch n Microsoft Access DataBase File và nh n vào nút Continue đ làm xu t hi n ể ạ ấ ấ ọ
h p tho i Add Connection nh hình: ộ ư ạ
B n ch n đ ng d n đén csdl b ng cách nh p vào nút Browse… và ch n csdl ạ ọ ườ ẫ ằ ắ ọ
Students.mdb nh hình. B n có th ki m tra xem k t n i có thành công không b ng cách ể ể ế ố ư ạ ằ
click vào nút Test Connection, b n cũng có th tùy ch nh k t n i b ng cách click vào nút ế ố ằ ể ạ ỉ
Advanced:
Biên so n: Ph m Đ c L p - 3 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
B n có th th y dòng mã k t n i ô cu i cùng nh hình, dòng mã có n i dung: ể ấ ố ở ế ạ ư ố ộ
“Provider=Microsoft.Jet.OLEDB.4.0;Data Source="D:\Data\Studying\VS.Net 05\Tu_
ng buoc lap trinh vb.net\Tung buoc lap trinh vb.net\19_Chapter19\Bai
tap\DataBase\Students.mdb"”
Nh n OK đ thêm k t n i vào Server Explorer. ế ố ể ấ
B n có th m r ng t ể ở ộ ạ ấ ả ể ở ộ t c các m c b ng cách click vào d u (+) bên c nh đ m r ng ụ ằ ấ ạ
nh hình: ư
Biên so n: Ph m Đ c L p - 4 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
1.3. T o b đi u ph i d li u Data Adapter ạ ộ ề ố ữ ệ
B c hai trong thao tác csdl nh ta đã bi ướ ư ế t đó là t o b đi u ph i Data Adapter. Data ố ộ ề ạ
ề Adapter s đ nh nghĩa chính xác nh ng thông tin mà b n mu n l y trong csdl, là n n ố ấ ẽ ị ữ ạ
t ng đ t o DataSet. ả ể ạ
VB.NET cung c p r t nhi u cách t o b đi u ph i. Cách đ n gi n nh t là ta kéo các ộ ề ấ ấ ề ạ ấ ả ố ơ
bi u t ng b ng trong Server Explorer vào c a s form trong ch đ thi t k . Ta cũng ể ượ ử ổ ế ộ ả ế ế
có cách th hai là dùng công c Data Adapter Configu ration Winzard. Ta g i đ n công ụ ứ ọ ế
c này b ng cách ch n đ i t ụ ố ượ ằ ọ ặ ng OledbDataAdapter trên tab Data c a ToolBox và đ t ủ
nó lên form. Trong bài t p này chúng ta s s d ng cách th hai này. ẽ ử ụ ứ ậ
1.4. S d ng đ i t ng đi u khi n OleDbDataAdapter ử ụ ố ượ ể ề
Ch n tab Data trong c a s ToolBox. Tab này ch a các đi u khi n đ thao tác v i csdl. ử ổ ứ ể ể ề ọ ớ
Trong tab này có hai đ i t ố ượ ế ng OleDbConnection và sqlConnection đ u cho phép t o k t ề ạ
ố n i đ n csdl. Nh ng chúng ta đã k t n i b ng Server Explorer nên không c n hai đ i ố ế ế ố ằ ư ầ
ng này n a. t ượ ữ
Kéo đ i t ng OleDbDataAdapter vào trong form. N u đ i t ố ượ ố ượ ng ế
ọ này không xu t hi n, b n có th thêm nó vào b ng cách R-Click vào tab Data ch n ể ệ ằ ấ ạ
Choose Item… đ làm xu t hi n c a s Choose ToolBox Items. Ch n tab .Net ổ ử ể ệ ấ ọ
Framework Components và ch n OleDbAdapter nh hình: ư ọ
Biên so n: Ph m Đ c L p - 5 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
Nh p OK đ hoàn thi n vi c thêm Item này cho ToolBox. B n cũng có th làm t ệ ệ ể ể ắ ạ ươ ng
v i các đ i t ng khác. t ự ớ ố ượ
OleDbAdapter đ c thi t k đ k t n i đ n csdl Access. Khi kéo th đ i t ng này vào ượ ế ế ể ế ố ế ả ố ượ
ở form thì VS.NET s tao trình Data Adapter Configuration Winzard. M t màn hình kh i ẽ ộ
đ u, b n nh n Next đ chuy n sang màn hình th hai: ầ ứ ể ể ấ ạ
B n nh n Next hai l n đ xu t hi n màn hình so n th o câu l nh SQL nh hình H.1 ể ệ ạ ấ ầ ấ ư ệ ạ ả
d i.ướ
N u b n ch a bi ư ế ạ ế ế t đ n các câu l nh SQL, có th nh 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 ồ ấ ư ể ạ ấ ả ấ
i. s này l ổ ạ
B n th y trong b ng Instructors có các ô CheckBox t ng. Query s ạ ấ ả ươ ứ ng ng v i các tr ớ ườ ẽ
ng ng đ rút thông tin c a b ng t o câu l nh t ạ ệ ươ ả . 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. ữ ệ ệ ể ấ ạ
Biên so n: Ph m Đ c L p - 6 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
H.1. C a s so n th o mã SQL ử ổ ạ ả
H.2. Query Builder
Biên so n: Ph m Đ c L p - 7 - Add: cnt-44-dh, ứ ậ ạ ạ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
H.3. Ch n tr ng đ xây d ng câu l nh SQL ọ ườ ự ể ệ
Biên so n: Ph m Đ c L p - 8 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 ố ề
H.4 giao di n có d ng nh hình ạ ư ệ
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 ả ủ ọ ỉ
i dùng s ch a nh h ng đ n csdl cho đ n khi có yêu c u c p nh t. tác c a ng ủ ườ ẽ ư ả ưở ầ ậ ế ế ậ
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: ề ữ ệ ứ ạ
Biên so n: Ph m Đ c L p - 9 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 nh th ta c n ph i làm m t thao tác g i là c s d li u lên form. Đ trình bày đ ơ ở ữ ệ ể ượ ư ế ầ ả ộ ọ
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. ủ ả
Biên so n: Ph m Đ c L p - 10 - Add: cnt-44-dh, ứ ậ ạ ạ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 ng (c t d li u – field) vào textbox ờ ộ ữ ệ là các tr ẽ ế ườ ộ ữ ệ
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: ạ ồ ữ ệ ể ể ấ ị
Biên so n: Ph m Đ c L p - 11 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
Nh n ch n c t Instructor đ ch đ nh tr ng này s hi n th trong ô textbox txtInstructor. ọ ộ ể ỉ ấ ị ườ ẽ ể ị
t mã đ xu t d li u khi ch ng trình Nh v y ta đã ràng bu c xong, ti p theo c n vi ộ ư ậ ế ầ ế ấ ữ ệ ể ươ
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 c đây. ế ữ ệ ể ắ ạ tr ữ ướ
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(). ứ
Biên so n: Ph m Đ c L p - 12 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 ứ ẽ ở ộ ộ ố ủ ứ ụ ế
nh duy t qua các b n ghi, đ m và hi n th s b n ghi hi n hành. thu n túy ầ ị ố ả ư ể ệ ế ệ ả
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 ấ ạ ế ố ế ứ ư
ng đi u ph i DataAdapter; th ba, t o đ i t ng trình c n truy xu t; th hai t o đ i t ầ ố ượ ứ ấ ạ ố ượ ứ ề ạ ố
ộ 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. ố ầ ủ ử ế ế ậ ậ
Biên so n: Ph m Đ c L p - 13 - Add: cnt-44-dh, ứ ậ ạ ạ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 t đ ớ ố ượ ng này b n có th bi ạ ể ế ượ ẩ 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 ng CurrentManager trên form. t c đ i t ấ ả ố ượ
Bây gi i bài t p c a chúng ta. Trong ph n tr tr l ờ ở ạ ậ ủ ầ ướ ấ 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 ử ụ
ng BindingContext, CurrentManager đ duy t qua các b n ghi. t ượ ể ệ ả
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. ệ ể ế ả ầ
ạ ạ mã sau:
ố ả
ế
ổ
T o th t c btnLast_Click và nh p đo n ậ ủ ụ 'Đ 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
Biên so n: Ph m Đ c L p - 14 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 chúng ta ệ qua các b n ghi. Bây gi ả ậ ạ ờ
ch y th ch ng trình. ử ươ ạ
ng trình: Ch y ch ạ ươ
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. ạ ấ ở ủ ể ả ươ ạ
Biên so n: Ph m Đ c L p - 15 - Add: cnt-44-dh, ứ ạ ạ ậ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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 i dùng bi t đó ấ ơ ch duy t xem các b n ghi, ta cũng c n cho ng ả ệ ế ệ ầ ườ ế
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: ư ủ ệ ộ
ngay d i phát bi u khai báo form1 nh sau: Ta t o m t th t c có tên count() ủ ụ ạ ộ ở ướ ư ể
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 ư ủ ộ
Biên so n: Ph m Đ c L p - 16 - Add: cnt-44-dh, ứ ạ ậ ạ VIMARU
H ng d n l p trình VB.NET Ch ẫ ậ ướ ươ ớ ng 19: Làm quen v i ADO.NET
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. ươ ử ể ể ể ạ ủ ệ ế ạ
ng trình: Ch y ch ạ ươ
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. ễ ữ ệ ở ứ ộ ẽ ọ ề ể ơ
Biên so n: Ph m Đ c L p - 17 - Add: cnt-44-dh, ứ ạ ậ ạ VIMARU