1. Trang chủ
  2. » Công Nghệ Thông Tin

Ví dụ và bài tập visual basic.net-lập trình cơ sở dữ liệu & report

470 1,7K 4
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ví dụ và bài tập visual basic.net-lập trình cơ sở dữ liệu & report
Định dạng
Số trang 470
Dung lượng 14,41 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Mục lục. Phần 1: Lý thuyết, tóm tắt và ví dụ chuyên đề. Làm việc với đối tượng ADO.NET. Làm việc với đối tượng Datareader. Đối tượng Dataadapter và dataset. Đối tượng Datatable và dataview. Đối tượng Datarow, Datacolumn và Datarelation,... Phần 2: Bài giải

Trang 1

PHẠM HỮU KHANG (Chú biên) Ì\

Trang 2

2] PHAM HỮU KHANG (Chủ biên)

HOANG DUC BAI

PHUGNG LAN (Hiéu dinh)

Trang 3

GIGI THIEU s MJ?

GIGI THIEU

Visual Basic NET cung cấp déi tugng ADO.NET bao gém hai

thành phần chính là NET Data Provider và đối tượng DataSet, cho phép bạn kết nối với mọi loại cơ sở dữ liệu, xử lý và trình bày chúng bằng nhiều hình thức khác nhau

Bằng cách sử dụng các đối tượng của ADO.NET, bạn có thể xây dựng các lớp dữ liệu cho từng thực thể hoặc xây dựng lớp tương tác với cơ

sở dữ liệu dùng cho mọi Project trên nền NET

Ngoài ra, cuốn sách này còn cung cấp cho bạn những kiến thức liên

quan đến việc trình bày dữ liệu trên các điều khiến, kết hợp các điều

khiển, thao tác đữ liệu, nhằm tạo ra ứng dụng mang tính thực tiễn cao Các bước xây dựng và tương tác với Report được thiết kế bằng Crystal Report, trình bày chi tiết từ bước thiết kế cho đến cách truyền

các tham số vào Report

Cuốn sách bao gồm 8 chuyên để chính, xuyên suốt từ đối tượng

Connection, Command, DataReader, DataAdapter, DataSet, DataTable,

DataView, DataRow, DataColumn, DataRelation đến việc trình bày dữ

liệu trên các điều khiển và xây dựng các lớp dùng chung

Giáo trình cung cấp cho bạn một khối lượng ví dụ hữu ích, đa dạng, trên 300 bài tập tham khảo có lời giải rõ ràng liên quan đến nhiều vấn

dé thực tiễn

HƯỚNG DẪN SỬ DỤNG VÍ DỤ VÀ BÀI TẬP

CHUYÊN ĐỀ VISUAL BASIC.NET

Để sử dụng các ví dụ và bài tập đính kèm theo sách, trước tiên bạn

cần quan tâm đến dường dẫn của ổ đĩa có tổn tại trên máy của bạn hay

chưa nếu ví dụ hay bài tập tham chiếu đến ổ đĩa

Những bài tập liên quan đến tài nguyên hay dịch vụ của hệ điều hành chỉ thực thi nếu hệ điều hành trên máy bạn là Windows 2000, XP hay 2003

Ngoài ra, với những ví dụ hay bài tập có liên quan đến cơ sở dữ

liệu, bạn cần xem lại hay thay đổi mật khẩu trong chuỗi kết nối cho phù hợp (nếu là cơ sở dữ liệu SQL Server, đường dẫn tập tin cơ sở đữ liệu

Northwind.mdb nếu liên quaa đến cơ sở dữ liệu Access)

Trang 4

Chú ý, mọi ví dụ và bài tập đính kèm theo sách được thiết kế

không giới hạn trong phần nội dung lý thuyết đang trình bày Chính vì

lẽ đó, một ví dụ liên quan đến các địch vụ hay máy in của hệ điều hành cũng được sử dụng mặc dù về mặt lý thuyết chúng chưa được trình bày

Bên cạnh những lớp cơ sở của NET EFramework, trong ứng dụng đính kèm còn sứ dụng lớp có tên clsSystem (đính kèm tập tin cls5ystem.dll) và

lớp myUserControl (đính kèm tập tin myUserControl.dll), bạn có thể tham

chiéu lai trong Project nếu ứng dụng phát sinh lỗi khi thực thị

MK.PUB

Trang 5

Bạn đọc đối với tú sách MK.PUB trong thời gian qua

Khẩu hiệu của chúng tôi là:

* Lao động khoa học nghiêm túc

* Chất lượng và ngày càng chất lượng hơn

* Tất cả vì Bạn đọc

Rất nhiều Bạn đọc đã gửi mơi cho chúng tôi đóng góp nhiều ý kiến

quý báu cho tủ sách

Ban xuất bản MK.PUB xin được kính mời quý Bạn đọc tham gia cùng nâng cao chất lượng tủ sách của chúng ta

Trong quá trình đọc, xin các Bạn ghi chú lại các sai sót (dù nhỏ,

lớn) của cuốn sách hoặc các nhận xét của riêng Bạn Sau đó xin gửi về

địa chỉ:

E-mail: mk.book@minhkhat.com.oun - mk.pub@minhkhai.com.ovn Hoăc gửi về: Nhà sách Minh Khai

249 Nguyễn Thị Minh Khai, Q.1, Tp Hồ Chí Minh

Nếu Bạn ghi chú trực tiếp lên cuốn sách, rồi gửi cuốn sách đó cho chúng tôi thì chúng tôi sẽ xin hoàn lại cước phí bưu điện và gửi lại cho Bạn cuốn sách khác

Chúng tôi xìn gửi tặng một cuốn sách của tủ sách MK.PDB tùy chọn lựa của Bạn theo một danh mục thích hợp sẽ được gửi tới Bạn

Với mục đích ngày càng nâng cao chất lượng của tủ sách MK.PUB, chúng tôi rất mong nhận được sự hợp tác của quý Bạn đọc gần xa

"MK.PUB uà Bạn đọc cùng làm ?”

MK.PUB

Trang 6

Chuyên đề 16: LÀM VIỆC VỚI ĐỐI TƯỢNG ADO.NET 15

1 Đối tượng ADO.NET trong Visual Basic.NRT ~- 15

2 Trình điều khiển cơ sở đữ liệu - 2 S21 SSS Sky 16

8 Đối tượng SQLConnection vn ng HH2 Hy HH 18 3.1 Khai báo không Qian CON v.v HH 21 HH Tnhh ket 18 3.2 Khai bdo déi tuong SqiConnection

3.3 Khởi tạo đối tượng SqÌConnecliori -.-.-.-ece- 19

3.4 Mở kết nối cơ sở dữ liệu - S22 2Q ng nào co 21 3.5 Kiém tra trạng thái của kết niối ào Son cành sseisrrees 21

3.6 Đóng bết nổi ào on SE]

3.7 Giải phóng Độ ThỚ Q Q cLLS SH SH ng gà ngà khen” 21

4 Khai báo và sử dụng OleDbConnectiơn . cs<<-<s-sc<essc-cc 28

5 Đối tượng SQLCommand 2-00 2Ạ 21c * HH rớy 28 5.1 Khai báo đối tượng SgÌCommand ààà co coi seăi 29 5.2 Khởi tạo đối tượng SqÌCommdnd co co cành HH nie 29 b1 8y 0 7.1000 he e a F8 nne R j1

6 Làm việc với đối tượng tham số -22cc2-xs-eeseee ®1

6.1 Parameters Collection nan ng e6 ố 6.2 Đối tượng SqÌPqrdm6l@F à- TT, hH nh key 46

Trang 7

BM MUC LUC

1 Wết luận ả cu 0n 2n ng crack 50

Chuyên đề 17: LÀM VIỆC VỚI ĐỐI TƯỢNG DATAREADER 51

1 Đối tượng SQLDATAREADER 222: 2111222215221 ke B1

8v an h6 h6hađ4.ố.ốố .ẻa ð1

¡2 /ya; 0.0.7 n0 se 54

2 Đối tượng SQLDataReader và điều khiển co ceeiằ 57

B KEG MAM ố “4 ăẼăẼ a4+4 62

Chuyên đề 18: ĐỐI TƯỢNG DATAADAPTER VÀ DATASET 63

1 Đối tượng SqlDataAdapter con Hà HH ty kkr nhe 63 1.1 Phương LÚC cuc TH An no TT vi ch 64

r *ÝJ 18 h6 < eee aaa 65

1.8 Điều khiển SqIDataAdpÏGT S LH cv vn nH kgệc 67

1.4, D6i tuong Sq Data Adapter c.cccccccccccccccceececsccccctetuntaseensettseastenes 70 p0 0 anh Ả 72

P8 (5 7 naaẢẦẢ1 a ẻẻẽ ằ 73 2.2 Phương (ÚC ch cece eee eee eee eee eee ne và 74

3 Cap nhat diy Li6u cece eee ng n2 TT và 80

4, Déi tuong DataSet VA KML ou ecccccceececcceesesceeeesseteeecceteescsseereaeeateys 85

LÊN 8.8/02, 0n nố Ả 8ã 4.2 Phương thúc ReddXmÏ a ST hkkekrevec 2 4.3 Phương thúc ÄCT© -L nh TT TT HA TY nh kg xxx kệ 88

5 KO Wand oo ccc cee cceeceeeceeeneseeenesstyvenseeesecesuuseseeeenessseesenseeentiesenieeeegs 96

Chuyên đề 19: ĐỐI TƯỢNG DATATABLE VÀ DATAVIEW 91

1 Đối tượng DataTable - - cc Tà cọ n TH S vn 9211 1kg KH kg vec 91

Trang 8

MUC LUC 9 MP

I8 (na 7n 98

0y 08 annannốố.e 96

2 Di tuang DataView wos cccsceccesccnssecceesetecventesenreecsseseneeeeunesennesen 99

3 Cập nhật đữ liệu từ đối tượng datatable cà eeeees 101 4A (GA (II 108

Chuyên đề 20: ĐỐI TƯỢNG DATAROW, DATACOLUMN VA

DATARELATION uc ccccressessssscsscseccceccesseccsesersaessonsseses 109

1 Đối tượng DatalÑfOW QQLQQQ TH TH TH ng K2 K11 95kg ray 109 LiL, TRuGC tin 1n 6 MA cố 109

ID NÐ// 001.807)7 20 NHdõõốÃÝÃẼÉẼÀÝ 110

2 Đối tượng DataColumn Ốc S2 22ccsssce<eeeseeeeeeseexerexvevee L2

QD, THUGe bir é—liaiaaaiiiiiẢ 112 2.2 PRUONG tRUC crrrcccccecccccecee tiene eee eee ec eeesegeeesonnennnaea 114

ä Đối tượng DataRelation Q02 S 21221 nnH TH nh na 117

:Lïw,1.:.ann cu ) 077) 0n ằ Ả 118

W.‹39Ụaiiiẳiđẳắ 124

Chuyên đề 21: DIEU KHIEN DATAGRID VA DATABINDINGS 125

1 Điều khiển DataGrid — Ăn ssssrsssssrrsssssreesseeee L 25

2 Định dạng điều khiển TextBox vào DataGrid 130

3 Định dạng điều khiển CheckBox vào DataGrid 133

4 Dinh dạng điều khiển ComboBox vào DataGrid eo 140

5 Điều hướng dữ liệu - uc 2 H9 E19 11221 SE 2n 122 vn vn 144

m0: .(a.(l .ăỐăẽ ắố 149

Trang 9

FT MỤC LỤC

Chuyên đề 22: LỚP DỮ LIỆU CHO TỪNG THỰC THỂ 151

1 Thảo luận giải pháp tương tác cơ sở đữ liệu Lỗ 1

2 Xây dựng lớp bao gồm các thuộc tính và phương thức của từng bảng

¡0ì 8n 6 (d4 157

3 Kêt luận Q2 — ĐH nà cm KTS vs ve ree 176

Chuyên đề 23: KHÁM PHÁ CRYSTAL REPORTT - 177

1 Thiết kế Report bằng Crystal Report che rercesrvee 177

2 Tương tác Report từ Visual Basic.NET cc cành 186 9.1 Khai báo dùng ChUH uc TS n2 KH KH nhá ng kg và 186 P.08.) 8s 0n an 35 188 2.3 Cung cấp thông tin đăng nhẬp «ceeccecceee-svi c v 9Ó

2.4 học dũ liệu từ điều khiển Crystal Report Vieuler 192

2.5 Điền dữ liệu véo Crystal Report từ đối tượng DataSel 194

2.6 Điền dữ liệu vao Crystal Report tu déi tuong DataTable 197

3 Xuất đữ liệu ra định đạng khác cv 2n ke 200

4 Kết luận L TQ SH 190k E222 5 11T ng kh kg keo, 204

PHẦN II: BÀI GIẢI CỦA BÀI TẬP - -.- s-csz©2222-sse5++ 205

Chuyên đề 16: LÀM VIỆC VỚI ĐỐI TƯỢNG ADO.NET 207

1, Đối tượng ADO.NET trong Visual Basie.NET 2Ö 7

2 Trình điều khiến cơ sở đữ ÌiệuU Q à 0n SH HT SH 21 ghe rà 207

3 Đối tượng SQLConnectlon Lt Q22 HH nn HH HT 012111 re 207

4 Khai báo và sử dụng OleDbonnection - St nncncssSevvvvc«c 215

5 Đối tượng SQLCommanid - 2c 211 1E TH n ST cán key 225

6 Làm việc với đối tượng tham SỐ ÁQQ Q2 Hài 254

Trang 10

MUC LUC 1i [MÙ?

Chuyên đề 17: LÀM VIỆC VỚI ĐỐI TƯỢNG DATAREADER 261

1 Đối tượng SqlDataReader ác Scsesceceeeeseee.e- 8 1

2 Đối tượng SqlDataReader và điều khiển cccccccecceẰ2 289

Chuyên đề 18: ĐỐI TƯỢNG DATAADAPTER VÀ DATASET 281

1 Đối tượng SqlDataAdapt@r - tt c2 n2 H21 xre re 281

2 Đối tượng DataSŠetL Q- g HT ng HT n HT, 291

bN tì) 6): 2.i0)uậầaiiiiiaid 305

4 Đối tượng DataSet và XML, Làn n SH nhe 313

Chuyên đề 19: ĐỐI TƯỢNG DATATABLE VÀ DATAVIEW 317

1 Déi tugng DataTable e.e À\X

2 Đối tượng DataVI@W ng TT 2 HH HT TT HH2 334

3 Cập nhật đữ liệu từ đối tượng DataTable - ác sec se: 349

Chuyér dé 20: DOI TUGNG DATAROW, DATACOLUMN VA

DATARELATION - 55- 5c 2222©-ctskzecxeecrkekreeee 357

II 2.78.) 4).1 09 addaiiaiẢẢẢẢ 357 P2101 1.09717.1902)10.2, 00008086 e

3 Đối tượng DataRelation

Chuyên đề 21: ĐIỀU KHIỂN DATAGRID VÀ DATABINDINGS 389

I8 i09 c nh 389

2 Dinh dang điều khiển TextBox vào DataGrid -ằ.c cà 396

3 Đình dang điều khiển CheckBox vào DataGrid ccằà 402

4 Dinh dang diéu khiển ComboBox vào DataGrid › 409

B Diéu hung div Gu oo ắe

Trang 11

MJ” 32 MUC LUC

Chuyên dé 22: LOP DU LIEU CHO TUNG THỰC THỂ 425

1 Thảo luận giải pháp tương tác cơ sở đữ liệu 425

2 Xây dựng lớp bao gồm các thuộc tính và phương thức của từng bảng

10110 — .Ả a 425

Chuyên đề 28: KHÁM PHÁ CRYSTAL REPORT 4ã3

1 Thiết kế Report bằng Crystal Report cv cccSccceeceeeo 453

2 Tuong tac Report tif Visual Basic NET 00.0.ccccecccccccucccceeeeresuteeeeeeenassees 453

3 Xuất dữ liệu ra định dang KhAC cceseccccesecsttcceseeseteessseesseceseees 461

Trang 12

Phần I: Lý thuyết tóm tắt & ví dụ chuyên dé 13 M°

Trang 13

Khi làm uiệc uới NET, để kết nối uới các cơ sở dỡ liệu

nhu: SQL Server, Access, Excel, Oracle, MySQL uà những cơ sở

dữ liệu bhác, bạn có thể sử dụng đối tượng ADO.NET

Bằng cách sử dụng các trình điêu khiển uò đối tượng ADO NET, bạn có thể tương tác với loại dữ liệu như SQ@L

Server, Access hay Excel

Trong chuyén dé nay, chung ta sé tim hiéu cach khai bdo

sử dụng các trình điêu khiển cơ sở dữ liệu bằng ngôn ngủ lập

trink Visual Basic.NET

Các uấn đê chính sẽ được đề cập:

Giới thigu ADO.NET

Trình điệu khiển cơ sở dữ liệu

Đối tượng OleDbConnection

«

v

«x Đối tượng SqiConnection

v

_ Đối tượng SqạlCommand

v Làm uiệc uớt déi tugng SqlParameter

trình điểu khiển cơ sở đữ liệu MET (NET Data Prouider) thuộc lớp kết

néi

.NET Data Provider la tap các đối tượng thuộc thành phần

ADO.NET, bao gồm đối tượng Connection (kết nổi cơ sở đữ liệu), đối

Trang 14

®

JA 16 Phan I: Ly thuyét tóm tắt & ví dụ chuyên dé tượng Comznand (thực thi phát biểu S@QL), Da‡aReader (bộ đọc dữ liệu

trực tiếp) và Da(aAdapter (bộ điều phối đữ liệu)

Với cơ chế ba tầng trong ứng dụng NET (tang-dir liéu Data tier,

tang Business tier vA tang hién thuc Presentation tier) tách biệt, cho

phép người dùng truy cập dữ liệu từ tầng hiện thực thông qua tầng

Business tter

Trong ADO.NET khái niệm con trổ (Cursor) không tồn tại, thay

vào đó đối tượng DœtaSet được xem như một con trỏ tĩnh (static) va doi

tượng DataReader 1a con tré chi doc (Readonly Curosor)

ADO.NET cung cấp các trình điều khiển tương ứng với các loại cơ

sé du liéu Chang han, SQL Server NET Data Provider ding cho cơ sở

di liéu SQL Server 7.0/2000

OleDb NET Data Provider la trình điều khiến dùng cho các loại cơ

sở dữ liệu tương tác nhúng như: Cơ sở dữ liệu Access, Excel hay co sé du

ligu SQL Server 6.5 Tuy nhién, ban ciing có thể sử dụng trình điều khiển này cho cơ sở dữ liệu SQL Server 7.0/2000

Odbc NET' Data Prouider là trình điều khiển dùng cho các loại cơ

sở dữ liệu tương tác thông qua ODBC của hệ điều hành Windous

Trong trường hợp làm việc với cơ sở dữ liéu Oracle hay MySQL,

bạn cần tải trình điều khiến Oracle NET Data Provider hay MySQL

.NET Dota Prouider, sau đó cài đặt chúng vào hệ thống

Trong chuyên để này, chúng ta chỉ tập trung tìm hiểu cách làm

việc với 3 loai co sé dif liéu chinh cha Microsoft la SQL Server, Access va Excel

2 TRINH DIEU KHIEN CO S6 DU LIEU

Khi lấy dữ liệu từ nguồn đữ liệu (dữ liệu quan hệ, tập tin văn bản, théng tin trong email, .), ban can quản lý và sử dụng trình điêu khiển

(Provider)

Do nội dung cuốn sách chỉ tập trung tìm hiểu 3 loại cơ sở dỡ liệu

chinh lA SQL Server, Access va Excel Chinh vi vay, chung ta si dung hai trình diéu khién chinh 14 SQL Server NET Data Provider va OleDb -NET Data Provider

Trang 15

Chuyên để 16: Làm việc với đôi tượng ADO.NET 17 M

Prouider được xem như một, cầu nối giữa ứng dụng với cơ sở đữ liệu,

chúng dùng để kết nối với dữ liệu nguồn, thực thi phát, biểu SQL và nhận

đữ liệu trả về Những dữ liệu trả về có thể được xử lý trực tiếp hay lưu

trữ trên đối tượng Dø#zSet (thuộc lớp không kết nối, chúng ta sẽ tìm hiểu chỉ tiết trong chuyên đề kế tiếp)

Nếu dữ liệu lưu trữ trên đối tượng DafaSe¿, chúng có thể trình bày

cho người sử dụng với nhiều hình thức khác nhau, như kết hợp đữ liệu từ nhiều bảng hay dữ liệu truy xuất từ nhiều loại cơ sở dữ liệu khác nhau

Nhu trinh bay 6 hinh trén, VET Provider cho phép bạn cập nhật

sự thay đổi của dữ liệu trén déi tugng DataSet vào đữ liệu nguồn Khi lập

trình ứng dụng Visual Basic.NET, khai báo và sử đụng hai trình điều

khiển trên về cơ bản là tương tự như nhau dù hai đối tượng này thuộc

khéng gian tén System,Data.SqlClient va System.Data.OleDb

Mặc dù, hai trình điểu khiến trên thuộc hai không gian tên khác nhau nhưng chúng cung cấp các chức năng tương tự nhau khi làm việc

với cơ sở đữ liệu

Chúng ta sẽ tham khảo sơ lược sự tương ứng các đối tượng thuộc

hai trinh diéu khién SQL Server.NET Data Provider va OLE DB.NET Data Provider nhu sau:

tu trong NET Provider la: Connection, Command, DataReader,

DataAdapter nhu sau:

Trang 16

Phan I: Lý thuyết tóm tắt & ví dụ chuyên để

Đối tượng Diễn giải

Connection Thiết lập kết nối cơ sở dữ liệu với nguồn

dữ liệu

Command Thực hiện lên trên nguồn dữ liệu, đặt vào

các tham số và thu nhận các chuyển tác từ

3 ĐỐI TƯỢNG SQLCONNECTION

Khi làm việc với cơ sở dữ liệu SQJ, Seruer 7.0/2000, bạn sử dụng

không gian tên System.Data.SqiClient Ngugc lại, trường hợp bạn làm việc với cơ sở dữ liệu Áceess hay Excel thì khai báo và sử dụng không gian tén System.Data.OleDb,

Để kết nối cơ sở dữ liệu SQL Server, ban sử dụng đối tượng

SgiConnection Sau đây, chúng ta tham khảo từng công đoạn khai báo và

thực biện của chúng

3.1 Khai báo không gian tên

Để khai báo và sử dụng đối tượng SgÌConnecHon, trước tiên bạn

phải khai báo trên phần đầu mỗi Class phat biéu Imports ding dé nap

không gian tên System.Data.SqlClient nhu sau:

Imports System Data.SqlClient

Trang 17

Chuyên đề 16: Làm việc với đối tượng ADO.NET 19 (Al

3.2 Khai báo đối tượng SqlConnection

Rhi đã khai báo không gian tên, bằng cách sử dụng cú pháp như

sau, bạn khai báo để sử dụng đối tượng SaiConnection:

Dim myConn As Sq]lConnection

8.38 Khởi tạo đối tượng SqlConnection

Sau khi khai báo biến đối tượng SgiConnection, bạn có thể khởi

tạo đối tượng này với chuỗi kết nối (bao gồm các thông tin IP hay tén

Seruer, Dœtabaœse là tên cơ sở đữ liệu)

myConn = New SqlConnection (“chuôi kết nối”)

Hoặc sử dụng thuộc tinh ConnectionString dé gan chudi két nối cơ

sở dữ liệu:

myConn = New SqlConnection()

myConn.ConnectionString- “Chuối kết nối”

Lưu ý, bạn cũng có thể vừa khai báo vừa khởi tạo đối tượng SqiConnection với biến gsCon (chuỗi kết nối cơ sở dữ liệu) trên cùng một câu lệnh như sau:

Dim gsCon As String

gsCon-"Server-=.;Database=Nort hwind"

gsCon +=";User 1D=sa; Password=sa;"

Dim myConn As SqlConnection = _

New SqlConnection(gsCon) Hoặc:

Dim gsCon As String

gsCon="Server=.;Database=Northwind"

gsCon +=";User I1D=sa; Password=sa;"

DimmyConn As New SqiConnection(gsCon)

Tùy thuộc vào cách sử dụng đặt quyển truy cập co sé dif liéu, vdi

tài khoản của cơ sở dữ liệu hay sử dụng tài khoản của hệ điều hành, nội

dung của chuỗi kết nối cơ sở dữ liệu SQL, Seroer sẽ khác nhau

Trang 18

®

M so Phần I: Lý thuyết tóm tắt & ví dụ chuyên đẻ

3.3.1 Sd dung SQL Server Authentication

Néu su dung SQL Server Authentication (dang nhập bằng dat

quyền cơ sở đữ liệu SQL Seroer), chuỗi kết nối bao gồm các thuộc tinh

nhu: Server, Database, User ID va Password

Ví dụ, khai báo chuỗi kết nối cơ sở dữ liệu SQL Seruer với các

thuộc tính như sau:

Dim gsCon As String

gsCon="Server= ; Database=Northwind"

gsCon +=";User ID=sa;Password=sa; "

Tuy nhiên, bạn cũng có thể sử dụng UID và PWD thay vì sử dụng

tu khéa User ID vA Password nhu sau:

Dim qsCon As String

gsCon="Server=.;Database=Northwind"

gsCon +=";UID=sSa; PWD=sa;"

Nếu mật khẩu là rỗng, bạn cũng khai báo thuộc tính PWD trong

Để tham khảo chi tiết về điều này, bạn có thể tìm đọc cuốn sách

“Quản trị SQL Seruer 2000” do nhà sách Minh Khai phát hành

3.3.2 Sứ dụng Windotuus Authenticeatton

Néu su dung Windows Authentication, chuỗi kết nối bao gồm các

thuộc tính nhu: Server, Database Khi d6, thuộc tinh User ID và

Password chinh la Username vA Password ma ngvdi si dung dang đăng

nhập hệ điều hành

Ví dụ, bạn khai báo chuỗi kết nối cơ sở đữ liệu SQL Seruer với các

thuộc tính như sau:

Dim gsCon As String

gsCon="Server=-.;Database=Northwind;"

Trang 19

` ` “ ®

Chuyên đề 16: Làm việc với đối tượng ADO.NET 21 [M

gsCon +="Integrated Security=SSPI;"

Tuy nhién, khi sy dung Windows Authentication, tic trong SQL

Server da tén tai nhing User cia hé didu hanh, điều này có nghĩa là bạn

đã đăng ký người sử dụng thuộc hệ điều hành trong phần login cia SQL Seruer

8.4 Mở kết nối cơ sở dữ liệu

Sau khi khai báo và khởi tạo đối tượng SgÌConnection, bạn có thể

mở kết nối cơ sở dữ liệu SQL Seruzr bằng cách sử dụng phương thức

Open() với cú pháp như sau:

myConn Open (}

8.5 Kiểm tra trạng thái của kết nối

Bằng cách sử dụng thuộc tính State cha đối tượng ConnecHon để so sánh với ConneectionStdte của không gian tên System.Dưfa, bạn có thể

kiểm tra xem kết nối đang ở trạng thái đóng hay không

Tf myCenn.State <> ConnectionState.Closed Then myConn.Close()

myConn Dispose ()

End if

3.6 Đóng kết nối

Sau khi thực thi một số công việc trên cơ sở dữ liệu, như thực thi

phát biểu SQL hay khai báo và sử dụng các đối tượng khác, nếu không sử dụng đối tượng SqiConnection, bạn khai báo đóng kết nối này bằng cách

khai báo phương thức C?ose() như sau:

myConn.Close()

8.7 Giải phóng bộ nhớ

Nếu sau khi đóng đối tượng Sq!Connection, bạn còn tiếp tục mở với

cơ sở dữ liệu khác thì không cần giải phóng bộ nhớ do biến này chiếm

g1ữ

Trong trường hợp chương trình không tiếp tục sử dụng đối tượng,

bạn nên giải phóng bộ nhớ biến này bằng cách sử dụng phương thức

Dispose như khai báo sau:

Trang 20

Phan I: Ly thuyét tom tat & vi du chuyén dé

myConn Dispose ()

Luu ý, kể từ khi mở kết nối cơ sở dữ liệu đến khi xử lý tập lệnh

(sau khi md két néi), ban cdn cai dat phat biéu Try Catch Finally End Try để kiểm soát lỗi phát sinh nếu có

Chang han, thêm Form vao Project va dat tén frmSqlConnect,

thiết kế các điều khiển trông giống như hình 16-1

Ví dụ 16-1: Kết nối cơ sở dữ liệu SQL Server

Private Sub Buttonl_Click(ByVal sender As _

System.Object, ByVal e As System.EventArgs) _

Handles Button1.Click

Dim gsCon As String= TextBox1.Text

Dim myConn As New SqlConnection (gsCon)

myConn.C1osge ()

myConn Dispose ()

End Try

End Sub

Lam ý, bạn cần khai báo không gian tén trên đầu Class nhu sau:

Tmports System Data Sql1Cllient

Trang 21

` , ®

Chuyên đề 16: Làm việc với đối tượng ADO.NET 23

Dé tim hiéu thém vé sd dung Sq/Connection, bạn có thể thực hiện

các ví dụ sau:

1 Thiét ké Form, cho phép ngudi st dung nhAp UserName va

Passuord, sau đó khai báo đoạn chương trình để kết nối cơ sở dữ

liệu Nến kết nối không thành công thì phun lỗi ra màn hình bằng lệnh MsgBox

2 Viết ứng dụng Console, sử dụng chuỗi kết nối cơ sở dữ liệu ứng với Windows Authentication, nếu kết nối thành công bạn liệt kê danh sách các bảng có trong cơ sở dữ liệu dé ra man hinh Command Prompt

4 KHAI BÁO VÀ SỬ DỤNG OLEDBCONNECTION

Tương tự như khai báo biến đối tượng SgiConnecton dùng cho cơ

sở dữ liệu SQL, Seruer vừa trình bày ở trên, khi sử dụng cơ sở dữ liệu MS

Access hay Excel, bạn có thể dùng đối tượng O!eDbConnection

4.1 Khai báo không gian tên

Để khai báo và sử dụng đối tượng O!eDbConnecHon, trước tiên bạn phải thêm phát biểu như sau vào phần đầu của C/øss:

Tmoorts System Data.OleDb

4.2 Khai báo biến đối tượng OleDbConnection

Để khai báo đối tượng OieDbConnecHon kết nối cơ sở đữ liệu Access hay Excel, ban su dụng đối tượng OleDbConnection Chẳng hạn,

bạn khai báo để sử dụng đối tượng này với cú pháp như sau:

Dim myConn As OleDbConnection

4.3 Khởi tạo biến đối tượng OleDbConnection

Sau khi khai báo biến đối tượng O/eDbConnection, bạn có thể khởi tạo biến đối tượng này với chuỗi kết nối, bao gồm tên và đường dẫn tập

tin co sở đữ liệu, trình điều khiển cơ sở dữ liệu Accase như sau:

myConn = New OleDbConnection(“chuổi kết nếi”)

4.4 Chuỗi kết nối cơ sở đữ liệu Access

Nếu bạn kết nối cơ sở dữ liệu Access, chuỗi kết nối khai báo tương

tu nhu sau:

Trang 22

Ma 24 Phần I; Ly thuyét tóm tắt & ví dụ chuyên đề

Dim gsCon As String

gsCon="Provider=Microsoft.Jet.OLEDB.4.0;"

gsCon +="Data Source=Northwind.mdb"

4.5 Chuéi kết nối dữ liệu Excel

Trong trường hợp kết nối dữ liệu Excel, chuỗi kết nối được khai báo tương tự như sau:

Dim gsCon As String

gsCon="Provider=Microsoft.Jet.OLEDB.4.0;"

gsCon +="Data Source=D:\Bookl.x1ls;Extended "

gsCon +="Properties=""Excel 8.0;HDR=YES;"""

Lưu ý, nếu cơ sở dữ liệu phiên bản 10.0, ban có thể khai báo chuỗi

Ngoài ra, trong truéng hap khai bdo déi tuong Sg/Connection, ban

có thể vừa khai báo và khởi tạo biến déi tugng OleDbConnection trén

cùng một, câu lệnh:

Dim gsCon As String

gsCon="Provider=Microsoft.Jet.OLEDB.4.0;"

gsCon +="Data Source=mydatabase.mdb"

Dim myConn As SqiConnection = _

New SqlConnection(gsCon)

4.6 Mở kết nối cơ sở dữ liệu

Sau khi khai báo và khởi tạo đối tượng OleDbConnection, bạn có thể mở kết nối cơ sở dữ liệu Excel hoặc Access bằng phương thức Open() với cú pháp như sau:

myConn.Open()

4.7 Đóng kết nối

Sau khi thực hiển một số công việc, ví dụ như thực thi phát biểu

SQL hay khai báo và sử dụng các đối tượng nào đó, nếu chương trình

Trang 23

Chuyên để 16: Làm việc với đôi tượng ADO.NET

không có nhu cầu sử dụng đổi tượng ConneccHon, bạn phải khai báo đồng

kết nối này bằng phường thức CloseÓ như sau:

myConn.Close()

4.8 Giải phóng bộ nhớ

Tương tự như trường hợp làm việc với cữ sở dữ liệu S@L Seruer,

khi dóng đổi tượng Connection cla cd sé dif liéu Access ma ban liệp tục

mỡ với cơ sở dử liệu khác thì không cần giải phóng biển đối tương này Tuy nhiên, nếu không tiếp tục sứ dụng đối tương Connechon bạn nên giải phòng bộ nhớ bảng cách sử dụng phuong thie Dispose nhu khai

báo sau:

ryConn.ispbose (}

Tương tự như trường hợp SgÌCannection bạn cần cài đặt phát biểu

Try Catch Finally End Try, dé kiém soat lỗi phát sinh khi mỗ cơ

sở dữ liệu Áceess

Vị dụ, thếm Form và đặt tên #mOleDbConnect vào Project, roi

thiết kế các điều khiển trên Form như hình 16-3

lrm0leDhEonnection

Hình 16-3; Kết nối cơ sở dit liéu Access

Trong biến cố Click cia nut Rutfon1, bạn khai báo kết nổi cơ sở dữ

Private Sub HurtEonTl_C11ck(ByVal sender As _

System.Object, ByVal e As System.EventArgs) _

Handles Buttonl.click

Dim gsCon As String= Text Box] Text

Trang 24

eo

M 26 Phan I: Ly thuyét tom tat & vi du chuyén dé

Dim myConn As New OleDeConnection(qsCon}

Chu y, ban can khai báo không gian tên System.Data OleDb trên

phản đầu cia Class nhu sau:

Tmports System Data.OleDb

Tiép tuc tugng tac vdi tap tin Excel, ban thém Form vaa Project

dat tén la frmExeceConnection và thiết kế các điều khiến như hình 16-3

L]ElfrmnEwcelConnection

ì -nđby: *48errd lật

Connecting ting

Hinh 16-3: Doc da liéu ti Excel

Bang cach khai bdo trong bién c6 Click cla mit Button? nhu ví du 16-3, bạn có thể kết nối tap tin Excel tay ý

Privare Sub ButLon1_C€1ick(ByVal sender As _

System.Object, ByVal e As System FRventArgs) _

Handles Button1.Click

* Khai báa chuỗi kết nối tập tin ExeeL

Dim qsCon As String

on - "Provider=Microsoft.Jet.OLEDB.4.0;"

Con += "Data Source=" + TextBoxl.Text

Con += ";Extended Properties—

qsCon += "Excel 8.0;HDR=YES; "

Trang 25

Chuyên đề 16: Làm việc với đối tượng ADO.NET 27 [M\

Dim myConn As New OleDbConnect ion(gsCon})

App.config, tap tin bao gém cdc thude tinh nhu: server, database, data

source, mỗi khi có nhu cầu tương tác với cơ sở đữ liệu, chuỗi kết nồi được kết hợp từ việc đọc các thuộc tính này

Ví dụ, bạn có thể khai báo chuỗi kết nối trong tap tin App.config

bing dinh dang XML nhu vi dụ 16-4

i du 16-4: Tap tin App.config

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<appSettings>

<add key="server" value="."/>

<add key="database" value="northwind"/>

<add key=“access"

value="Provider=Microsoft.Jet.OLEDB.4.0;" Data Source= "C:\Program Files\Microsoft Office\Office\Samples\Northwind.mdb" />

</appSettings>

</configuration>

Sau dé, dé doc duce c4c khéa khai bdo trong tap tin App.config,

bạn sử dụng không gian tên System.Configuration

Imports x= _

System.Configuration.ConfigurationSettings

Tiếp tục khai báo để lấy giá trị từ các khóa vào hai biến toàn cục

trong phương thức ge(DBTnƒo như sau:

Sub getDBInfo (}

Trang 26

® `

Ml 28 Phan I: Lý thuyết tóm tắt & ví dụ chuyên dé

gsServer = x.AppSettings ("server")

gsDatabase = x.AppSettings ("database")

End Sub

Lưu ý, bạn có thể lưu thông tín chuỗi kết nối cơ sở dữ liệu trong

Windows Registry hodc tAp tin dinh dang Text

Để tìm hiểu thêm vé su dung OleDbConnection, ban cé thé thuc

hién cdc vi du sau:

1 Thiết kế Form, cho phép người sử dụng nhập sername và Passuord,

sau đó khai báo đoạn chương trình để kết nối cơ sở đữ liệu và kiếm tra trong bảng t6lUsers cha eo sd dif liéu Access tuy chon Néu két nối không thành công thì phun lỗi ra màn hình bang lénh MsgBox

2 Viết ứng dụng Cønsoie, sử dụng chuỗi kết nối liệu Exce!, nếu kết nối

thành công, bạn liệt kê danh sách dữ liệu trong bang tinh (Sheet) ra man hinh Command Prompt

3 Tương tự như trên, bạn khai báo một Cløss và dat tén elsExcel, bằng

cách khai báo và khởi tạo đối tượng O!eDbConneciion trong Constructor của Class với chuỗi kết nối xem như tham số truyền vào

Construetor Sau đó, khai báo ứng dụng để sử dụng c†sExeeÏ này bằng cách truyền hoặc gán chuỗi kết nối vào thuộc tính của đối tượng clsExcel

5 ĐỐI TƯỢNG SQLCOMMAND

Sau khi đã làm quen cách kết nối co sd di liéu SQL Server bang

đối tượng Sq!Connection hay cơ sở dữ liệu Access và Excel bằng đối tượng OleDbConnection, ban dễ nhận thấy tập lệnh đã khai báo tương tự nhau

Khi làm việc với đối tượng Commanởd, chúng ta chọn đối tượng SqlConnection va co sd du liéu SQL Server dé tim hiéu cách sử dụng với

chúng

Nếu muốn thực thì phát biểu SQL dạng hanh déng (Delete, Insert, Update, Create, Drop, Alter, cdc tha tuc (Stored Procedure), ho&c phat biểu Select, bạn có thể sử dụng các phương thức và thuộc tính của đối

tượng Sqạ/Command.

Trang 27

@

Chuyên đề 16: Làm việc với đối tượng ADO.NET 29

5.1 Khai báo đối tượng SqlCommand

Để khai báo và sử dụng đối tượng SgiCommand, bạn thao tác từng

bước tương tự như khai báo và khởi tạo đối tượng Sq!Connection

Chẳng hạn, bạn sử dụng cú pháp để khai báo đối tượng

SqlCommand như sau:

Dim myCom As SqlCommand

Nếu làm việc với cơ sở dữ liệu Access, nghia la trước đĩ bạn khai báo và khởi tạo đối tượng OleDbConnection thì dùng cú pháp sau:

Dim myCom Aø OleDbCommand

ð.2 Khởi tạo đối tượng SqlCommand

Sau khi khai báo đối tượng SqlCommand, để khởi tạo và sử dụng

đối tượng Sq)Commnand, bạn cĩ thể dùng cú pháp sau:

myCom= New SqiCommand{strSOl,myConn)

Ngồi ra, bạn cũng cĩ thể khởi tạo đối tượng SqÌCommand khơng

cĩ tham số, nhưng sau đĩ sử dụng hai thuộc tính CommondTexi và

Connection để khai báo như sau:

myCom= New SqlCommand ( }

myCom.CommandText=strSoQOL

myCom.Connection =myConn

Ví dụ, trong trường hợp bạn kết nối cơ sở dữ liệu SQL Seruer cĩ tén Northwind, sau 46 lay gid tri của cột và hàng thứ nhất trong tập trả

về, bạn khai báo như sau:

“ Khai báo chuỗi kết nổi cơ sở dữ liệu SQL Server

Dim gsCon As String

qsCon-"database=Northwind; UID=sa; PWD=sa; "

gsCon +="server=."

“ Khưi báo uà khửi tạo đốt tuong SqlConnection

Dim myConn As SqlConnection()

myConn= New SqiConnect ion(gsCon)

‘ Khai bdo chuéi SQL

Dim strSQL As String

strSQL="Select CustomerID from Customers"

Trang 28

IM]

—~

®

mm 30 Phần I: Lý thuyết tóm tắt & ví dụ chuyên để

“ Khai báo uò khởi tạo đối tuong SqlCommand

Dim myCom As SqlCommand (}

myCom =New SqlCommand (strSQL, myConn)

strSQL= myCom.ExecuteScalar()

Chi y, néu ban st dung déi tugng OleDbConnection dé tam việc với

cơ sở dữ liệu Áecøss thi khai bao vA sit dung d6i tugng OleDbCommand nhu sau:

‘Khai bdo chuéi hết nối cơ sở dữ liệu Access

DIm gqsCon As Strlng

qs5Con=z="Provider=MICrOsoft.Jet.OLEDB.4.0; "

gsCon +="Data Source=Northwind.mdb*

‘Khai bdo va khdi tao déi tugng OleDbConnection

Dim myConn As OleDbConnection(}

myConn= New OleDbConnection (gsCon)

' Khi báo chuỗi SQU

Dim strSQL as String

strSQL-"Select CustomerID from Customers"

° Khai báo 0à khởi tạo đối tượng OleDbCommand

Dim myCom As OleDbCommand ( )

myCom =New OleDbCommand (strSOL,myConn)

sErSQL- myCom.ExecuteScalar ( )

5.3 Thuộc tính

Đối tượng SqlCommand cùng cấp các thuộc tính như:

CommandText, CommandType, Connection, CommandTimeout va Transaction

CommandText: Chuéi SQL hay tên đối tượng

CommandType Loại đối tượng cung cấp trong thuộc tính CommandText Chang han, bạn khai báo thủ tục nội tai cia SQL

Seruer cho thuộc tính CommmandText thì giá trị khai báo cho thuộc tinh CommandT ype la StoredProcedure

Connection: Đối tượng Connection tương ứng Chẳng hạn, khi bạn sử

dung SqlCommand thi thuéc tinh này có thé gán là đối tượng

SqiConnection

CommandTimeout: Thdi gian chd tinh bang gidy trước khi kết thúc

thuc thi

Trang 29

® Chuyên đề 16: Làm việc với đối tượng ADO.NET 31

se Transgcfion: Cho phép bạn khai báo chuyển tác với ba thuộc tính là Save, Commit va RollBack

5.4 Phương thức

Đối tượng SqgJCommand cung cấp 3 phương thức chính để thực thị

phat biéu SQL la ExecuteNonQuery, ExecuteScalar va ExecuteReader 5.4.1 Phuong thiic ExecuteNonQuery

Phuong thuc ExecuteNonQuery tra vé gid tri số nguyên, tương ứng

vdi s6 mAu tin dA thuc thi, duoc sit dung cho cdc phat biéu SQL nhu cap

nhật dữ liệu, xóa, thêm mới mẩu tin hay các phát biéu dang hanh déng

và thủ tục nội tai trong SQL Server

Chẳng hạn, bạn khai báo và sử dụng phương thức ExecuteNonQuery

cua déi tugng Command trong phương thức doS@L thuộc lớp có tên

clsDatabase nhu vi du 16-5

i du 16-5: Phuong thie thue thi phat biéu SQL

Function doSQL (ByVal strSQL As String, ByRef EffectedRecord As Integer) As String

Dim strError As String = “"

‘Khai bdo uà khởi tạo đối tượng SqạÌConnection

Dim myConn As New SqlConnection(gsCon)

‘Khai bdo va khởi tạo đối tượng SạlCommand

Dim myCom As New SqiCommand (strSQL, myConn)

` Sử dụng cấu trúc quản !ý lỗi

Try

' Mở hết nối cơ sở dữ liệu

myComn Open ()

' Thực th\ phát biểu SQL dạng hành động, trả uề số mấu

‘tin da@ thuc thi

EffectedRecord =myCom.ExecuteNonqguery ()

“ Đóng kết nối cơ sở d8 liệu

myConn.Close()

Catch myException As Exception

“ Nếu lôi phút sinh trả vé chudi loi

strError=myException.ToString()

Finally

' Sau bhi kết thúc xử lỷ lỗi phát sinh, ban nén kiém tra

Trang 30

Phan I: Lý thuyết tóm tắt & vi du chuyên dé

' hết nối cơ sở đữ liệu còn mở hay không, nếu còn mở thì

“ bạn khai báo đóng kết nối

Tf (myConn.State = ConnecLionStEaEe.Open) Then

myConn.Close() End Tf

End Try

End Function

Đối với trường hợp làm việc với cơ sở dữ liệu Áccess có tên

Northuind, bạn có thể sử dụng phương thức ExecufteNonQuery của đối tượng O/eDbConnection để thực thi phat biéu SQL như ví dụ 16-6

í dụ 16-6: Phương thức thực thi phát biểu SQL ứng với Access

Eunctlon đoSQL(ByVal strSQ1I, As SLring, ByRef

EffectedRecord As Integer) As String

Dim strBrror As String = ""

‘ Khai bdo va khdi tạo đối tượng OleDbConnection

Dim myConn As New OleDbConnection(gsCon)

‘Khai bdo uà khởi tạo đối tượng SạÌCommand

Dim myCom As New OleDbCommand (strSQL, myConn)

‘Si dung cau tric quan lý lỗi

Catch myException As Exception

‘ Néu lãi phát sinh trả 0ê chuỗi lỗi

sErError=myException.ToString () Finally

“ Sau khi kết thúc xử lý lỗi phái sinh, bạn nên biểm tra

“ kết nối cơ sở đữ liệu côn mở hay không, nếu còn mở thì

“ bạn khơi báo đóng kết nổi

If (myConn.State = ConnectionState.Open)

Then myConn.Close() End If

Trang 31

Chuyên đề 16: Làm việc với đối tượng ADO.NET

End Try

End Function

Trong ví dụ trên, giá trị của biến øsCon được lấy từ tập tín

App.Config hoặc bạn có thể lấy từ tập tin dang Text véi dinh dạng như sau:

gsCon ="Provider=Microsoft.Jet.OLEDB.4.0;"

gsCon +="Data Source=C: \Program

Files\Microsoft"

gsCon +=" Office\Office\Samples\Northwind.mdb" Hay đối với cơ sở dữ liệu SQL Seruer thì chuỗi kết nối cơ sở dữ liệu

có hình đạng như sau:

gsCon="server=.;database=Northwind;"

gsCon +="uiđ=sa; pwd=sa "

Lưu ý, trong lớp cÌsDafabase, bạn khai báo để nhận chuỗi kết nối

trong Constructor hay bằng cách định nghĩa thuộc tính:

Private gsCon As String

© Khai bao Constructor

Sub New (ByVal strCon As String)

‘Khai bao thuéc tinh

Property Connection() As String

Để tham khảo thêm cách làm này, bạn thêm Form vào Project với tên #mExecuteNonQuery, thêm điều khiển TextBox để nhập phát biểu

Trang 32

Phần I: Lý thuyết tóm tắt & ví dụ chuyên dé

tao bang dif liés (Create Table) và điều khiển TextBox thu hai dé nhan

số mân tin thực thi từ phát biểu Insert

l ĐEN Nền

Create table TbUseis{UsenD int idenliy(1 1)

UserName varchar[20), FullN ame

Sau đó bạn khai báo trong biến cố Click của nút Button] dé goi

phương thức doS@L của lớp elsDatahase như ví dụ 18-7

“Khai bao va khối tao déi tong clsDatabase

Dimecls As New clsDatabase(gsCon)

Gor phuong thức doSQ1, sLrError = cls-doSQbiTcxlBoxl Text }

End Sub

Khi thuc thi phat biéu Insert ding dé thém mau tin vao bang vita

tao ra từ ví du trén, ban khai bdo nhu vi du 16-8

Trang 33

Chuyên đề 16: Làm việc với đối tượng ADO.NET

° Khai báo uà khởi tạo đối tượng cÌsDatabase

Dimclis As New clsDatabase

Chú ý: Trong lớp cÌsDotabơœse, chúng ta cài dat Overload hai

phương thức cùng tên đoSQL nhưng khác nhau về số lượng tham số như

vi du 16-8-1

Nếu bạn có nhu cần lấy ra số mẩu tin thực thi thì bạn sứ dụng

phương thức có hai tham số

i du 16-8-1: Phương thức doSQL (Ovreloading)

Function doSOL (ByVal strSQL As String) As String Dim strError As String = ""

Dim myCon As New SqlConnection({gsCon)

Try

myCon.Open() Dim myCom As New SqlCommand (strSQL, myCon)

myCom.ExecuteNonQuery () Catch ex As Exception

strError = ex.Message Finally

1 Tao tmg dung Windows Forms, cho phép người sử dụng nhập tên cơ

sở dữ liệu và tạo cơ sở đữ liệu dé trong SQL Server

2 Thiết kế Form, cho phép người sử dụng chọn cơ sở đữ liệu đang tổn tai trong SQL Server rồi tạo mới một Tob/e và thêm dữ liệu vào Table dé

Trang 34

®

rn 36 Phan I: Ly thuyét tém tdt & vi dụ chuyên để

3 Bang cach si dung diéu khién DataGrid, liét ké danh sdch cdc mau

tin trong bảng vừa tạo trong câu 2, khi người sử dung chon những mẩu tin cần xóa trên các checkbox, lập tức các mẩu tin đó sẽ bị xóa

và ìn ra số mẩu tin đã xóa

5.4.2 Phương thức ExecuteScalar

Trong trường hợp phát biểu S@L dạng Søizet, phương thức sẽ trả

về là một giá trị kiểu objec£ tương ứng với giá trị của cột và hàng đầu tiên Ví dụ, sử dụng phương thức ExecuteScalar bằng khai báo như ví dụ

16-9

Ví dụ 16-9: Phương thức ExecuteScalar'

Function doSQL(ByVal strSQLAs String, _

ByRef Result As object) As String

“ Khui báo biến chuỗi lỗi

Đ1m strError As String = ""

' Khai báo va khởi tạo đối tượng kết nối cơ sở dữ liệu

Dim myCon As New SqlConnection(gsCon)

Try

myCon.Open (}

Dim myCom As SqiCommand

‘ Khoi tao déi tuong SqiCommand

myCom = New Sq]lCommand({strSQL, myCon)

“ Gọi phương thúc ExecuteScalar

mỗi khi gọi phương thức

Trang 35

Chuyên đề 16: Làm việc với đối tượng ADO.NET

Ví dụ, trong trường hợp muốn lấy tổng số lượng khách hàng dang

cé trong bang Customers, han chỉ cần khai báo phát biểu S@L dạng Ằelect với phép toán Counf như sau;

Select Count (*; from Custoners

Sau đỏ, trong ứng dung Visual Basic NET, ban gọi phương thức có

tén getValue nhân tham trị là phát biểu S@L dạng Select trả vẻ một giá

tri là tổng số mẩu tin của bảng Custơmers khai báo ở trên và tham biên

la bién object nhu vi du 16-10,

phương thức getValuei

Dim strError As String

Private Sub Buttonl_Click (ByVal sender

System.Cbject, ByVal e As System

* Khai bao nà khởi tạo đổi tượng clsl2atabase

Dim œls As New clsDatabase (gsCon)

Dim obj As Object

“ gọi phương thức gefValue

strError - cls.getValue!TextBoxl.Text, obj) TexlLBox2.Text = obj ToString

Trang 36

38 Phần I: Lý thuyết tóm tắt & ví dụ chuyên để

1 Thiết kế #orm, cho phép người sử dụng chọn một sản phẩm trong điều khién ComboBox, sau đó in ra số lượng đang còn trong kho của sản phẩm đó

2 Thiết kế thủ tục nội tại để thêm mẩu tin vao bang có cột số tự động, sau đó khai báo và sử dụng thú tục này với mục đích mỗi khi thêm

một mẩu tín bạn lấy ra được số tự động đó Sau đó, thiết kế Form cho phép người sử dụng thêm tấu tín và trình bày số tự động lấy được ra màn hình

3 Thiết kế Form, liệt kê danh sách các Coun#ry, mỗi khi người sử dụng

chọn một Counry bạn lấy ra khách hàng có số tiền đặt hàng lớn

nhất thuộc Couniry đó, đồng thời trình bày danh sách các đơn đặt

hàng của khách hàng đó trên điều khién DataGrid

5.4.3 Phương thức Executelteuder

Khi bạn muốn truy cập dữ liệu với số lượng nhỏ và không cần xử lý

dữ liệu hay điều hướng trên mẩu tin, ban có thể sử dụng đối tượng

SqiDataReader hay OleDbDataReader

Chẳng hạn, khai báo phương thức có tên ge£Vaiue như ví dụ 16-11

nhận hai tham trị là [sername, Passtuuord và tham biến là mảng dạng

chuỗi Sau đó, chương trình kiểm tra người sử dụng này có tổn tại trong

bảng £b/Dsers (cơ sở dữ liệu Northwind) hay khéng Néu tén tai, chuang trình sẽ gán giá trị của các cột UserID, FullName, Email yao phan ti mảng tương ứng

ï dụ 16-11: Gọi phương thức getValue

‘Truyén hai tham sé la username va password

Function getValue (ByVal Username As String, _

ByVal Password As String, _

ByRef myValues() As String) As String

Dim StrError As String =""

‘ Khai báo phát biểu SQL

Dim strSQL As String

strSQL= "Select Password, "& _

"UserID, FullName, Email From tblusers "& _

"Where UserName='" + Username + "'*

“ Khai báo 0à khỏi tao déi tuang SqlConnection

Dim Conn As SqlConnection = _

New SqlConnection(gsCon)

Trang 37

- „ ®

Chuyên để 16: Làm việc với đối tượng ADO.NET 39

‘ Khai bdo vé khdi tao déi tuong SqlCommand

Dim myCom As SqiCommand = _

New SqiCommand (strSQL, Conn) Try

“ Mở kết nối cơ sở dữ liệu SQL Seruer

Conn.Open ()

‘Khai bdo doi tượng SqlDœtaReader, sau đó sử dụng phương

“ thúc ExecuteReader của SqlCommand để điện dữ liệu từ dủ

“ liệu nguồn uào đối tượng Sq1DatuReader

Then

“Gan fullname, email va userId vao mang myValues(1) =_

myRD.GetInt32(1).ToString

myValues(2) = myRD.Get String (2)

myValues (3) =myRD.Get String (3)

Sau đó, thêm Form vao Project vA dat tén frmExecuteReader, thiết

kế một số điều khiển, sau đó khai báo dé goi phuong thie getValue nếu

ngudi sit dung cung cap day dii Username va Password nhu vi dụ 16-12

ï dụ 16-12: Kiểm tra người sử dụng

Private Sub ButEonl_C1ick(Byval sender As

System.Object, ByVal e As System.EVeniLArgs)

Handles Buttonl.Click

Trang 38

®

IMAI 40 Phần I: Lý thuyết tóm tắt & ví dụ chuyên dé

“ Vêu câu người sử dụng nhộp username

“ Gọi phương thúc kiém tra username va password

Dim myValues (3) As String

Dimcls As clsDatabage (gsCon)

Dim strError As String = _

clsGetValue (txtUser.Text, _

txtPwd.Text, myValues)

‘Néu gid tri phần tử đầu tiên khúc rỗng, túc là user hợp lệ

Tf Not myValueg (0) Ts NoEhing Then

“In ra UserID TextBox1.Text = myValues(0) + voNewLine

“In ra FullName

TextBoxl.Text += myValues(1) + vbNewLine

‘In ra Email TextBoxl.Text += myValues (2) + vbNewLine End If

End Sub

Lưu ý, cấu trúc của bảng tb/Users duoc định nghĩa bằng phát biểu

CREATE TABLE như sau:

Create Table tblUsers

(

UserID int identity(1,1) primary key,

UserName varchar (20) not null unique,

Password varchar({10) null,

FullName nvarchar(20) null,

Email varchar(20) null,

JoinDate smalidatetime default getdate ()

Trang 39

5 ®

Chuyên để 16: Làm việc với đối tượng ADO.NET 41

Ban có thể thêm mẩu tín vào bảng ?b!Users bằng cú pháp của phat biểu fnserf như sau:

œrF iInEø Ebllsers (UserName,

sword, FullName, Email}

('Khang','1234', ‘Suu Khang’,

Hinh 16-6: Ket gua dang nhap

Để tìm hiểu thêm về phuong thiic ExecuteReader, ban cé thé thuc hanh các ví dụ sau:

1, Viết ứng dụng Conso¿e, yêu cầu người sử dụng nhập vào tên cơ sở đữ

liệu, bạn liệt kê tên của các đối tượng cơ sở đừ liệu cùng với ngày Lạa

ra nó

9, Thiết kế Form, cho phép liệt kê danh sdéch Country trong bang

Customers vao diéu khién ComboBox

6 LÀM VIỆC VỚI ĐỐI TƯỢNG THAM SỐ

Trong trình bày của phân khai báo và sử dụng phương thức

ExecuteiNonQuery thuộc đối tượng SgICommand, bạn có thể khai báo một phát biểu S@/ dạng hành động bằng cách kết nổi những giá trị từ Forn

nhập liệu, sau đó sử dụng đôi tương SqiComunandl để thực thí chúng

Khi người sử dụng nhập giá trị vào điêu khiển TextBox như hình

16-7 rỗi nhấn nút “Add Data without Parameter”, 16i s@ phat sinh nếu

Trang 40

Phan I: Ly thuyét tom tat & vi du chuyén dé

phat biéu SQL khong xử lý dấu nháy đơn (chúng ta sẽ tìm hiếu cách sử dụng Parưme#er trong nhấn cuối của chuyên để này)

Chẳng hạn, bạn tao mới bảng dữ liệu có tên ¿blS/a/f3 bằng cách

nhân nút Create Table trén Form có tên frmParameter hoặc trong cơ sở

dit ligu SQL Server

i du 16-13: Tao bang dw liéul

Create table tblGlails

(SraftTD int idenlity (1,1), Firs

nvarchar(20), LastName nvarchar {

Ké dén, thiét ké cac diéu khién TextBox cho phép ngudi si dụng

nhập họ và tên của nhản viên

SũL le table thiStaffs(StafflD int idertity[1,1), FustName

nvarcnail20), LastName nyaichar( il

Create Table Bet = rp FistName [fan

Bằng cách gói phương thức doS@L trong lớp clsDaiabase ứng với

phát biểu S@E bạn khai báo trong biến cố C/ek của nút Add Data without Parameter nhu vi du 16-14

16-14: Thực thi phat biéu SQ

Ngày đăng: 06/12/2013, 19:32

TỪ KHÓA LIÊN QUAN