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