Bên cạnh những kiến thức cơ bản của ADO.NET 2.0, chúng tôi giới thiệu đến bạn đọc cách đọc dữ liệu từ đối tượng Cache để tránh kết nối cơ sở đữ liệu nhiều lần, ASP.NET 2.0 va XML.. Ngoà
Trang 1ˆ THU VIEN DH NHA TRANG _`
Không gạch, viết, vẽ lên sách
Trang 2tram Phạm Hữu Khang (Chủ biên)
Trang 3
GIỚI THIẾU
Tiếp theo quyến 3 của tập 5, quyển 4 của tập 5 cung cấp cho bạn những kiến thức từ cơ bản đến nâng cao liên quan đến cách xây dựng ứng
dụng ASP.NET 2.0 với cơ sở dữ liệu SQL Server Bên cạnh những kiến thức
cơ bản của ADO.NET 2.0, chúng tôi giới thiệu đến bạn đọc cách đọc dữ liệu
từ đối tượng Cache để tránh kết nối cơ sở đữ liệu nhiều lần, ASP.NET 2.0
va XML
Ngoài ra, bạn cũng tìm hiểu cách khai báo lớp dùng chung để tương tác với cơ sở dữ liệu SQL Server, lớp trình bày đữ liệu trên các điều khiển ASP.NET thường sử dụng và cách khai báo sứ dụng User Control cùng với MasterPage
Giáo trình bao gồm 6 chương và phần diễn giải ứng dụng Tuyển dụng đính kèm, xuyên suốt từ giới thiệu cấu trúc ứng dụng, chức năng tìm kiếm, liệt kê, xem thông tin chỉ tiết của tỉn tuyển dụng, nộp đơn trực tuyến, lưu tin tuyển dụng, lưu tiêu chí tìm kiếm, chức năng đăng nhập và đăng tin của nhà tuyển dụng cùng với phương thức xây dựng giỏ hàng
Song song với ví dụ trình bày chỉ tiết ứng với từng phần lý thuyết, chúng tôi giới thiệu đến bạn đọc từng phần của ứng dụng thương mại điện
tử trong kinh doanh địch vụ tuyển dụng trên nền ASP.NE2 2.0 bằng ngôn ngữ lập trình C# 2005 với cơ sở dữ liệu SQL Server 2000/2005
Quyển 4 - Đối tượng ADO.NET 2.0 và XML” nằm trong tập sách C#
2005 - Tập 5: Lập trình ASP.NBT 2.0 bao gồm nhiều quyển từ lập trình cơ bản, đối tượng và điều khiển ASP.NET 2.0, điều khiển kết nối cơ sở dữ liệu, lập trình cơ sở dữ liệu, ASP.NET 2.0 trong ứng dụng tuyển dụng nhân sự, lập trình ASP.NET AJAX
Trang 4
HƯỚNG DẪN SỬ DỤNG VÍ DỤ ĐÍNH KÈM
THEO SACH
Để sử dụng các ví dụ đính kèm theo sách, trước tiên bạn giải nén các
thư mục tương ứng với từng chương nếu chúng tổ chức dưới dạng tập tin zip, trong mỗi chương có nhiễu Solution ứng với từng thư mục Để mở từng Web
Site trong từng thư mục bạn có thể chọn một trong 3 cách sau:
* Chọn tên tập tin sÌn trong thy mye Projects va Double-Click
« Chon tén tap tin sln réi R-Click | Open With | Visual Studio 2005
* Chon Start | All Programs | Microsoft Visual Studio 2005 | Microsoft Visual Studio 20051 File | Open | Web Site! chon tén thu mue
Bạn có thể kiểm tra đường dẫn của thư mục Web Site mà Solution
quản lý bằng cách mở tập tin sln và thay đổi PhysicalPath va Project
Để sử dụng cơ sở đữ liệu cho ví dụ và ứng dụng đính kèm, bạn có thể phục hồi cơ sở dữ liệu từ tập tin backup bang chic năng Restore hoặc sử
dụng tiện ích Attach để thêm cơ sở dữ liệu vào SQL Server
Với những ví dụ có liên quan đến cơ sở dữ liệu bạn cân xem lại các
thuộc tính của chuỗi kết nối cho phù hợp với một trong hai đặc quyển kết
nối cơ sở dữ liệu là theo hệ điều hành Windows hay SQL Server 2005
Ví dụ đính kèm theo sách được tổ chức theo tig Solution, bao gdm nhiều thư mục tương ứng, sau khi mở Solution trong Visual Studio 2005,
bạn có thể chọn từng thư mục để thực thi Để có trang mặc định bạn có thể
chon trang ASP.NET 3.0 rồi R-Click | Set As Start Page
Ung dụng đính kèm theo đĩa sẽ được hoàn thiện thành ứng dụng thương mại điện tử có thể sử dụng trong thực tế cho doanh nghiệp kinh doanh địch vụ tuyển dụng hay một phần trong hoạt động kinh doanh của
công ty, Ứng dụng sẽ được phát triển qua từng quyển cho phù hợp với các kỹ thuật đã trình bày, bạn có thể tiếp tục điều chỉnh một vài chức năng khác
dựa trên những chức năng đã được trình bay
Trang 5
THƯ NGỎ
Kính thưa quý Bạn đọc gần xa!
Trước hết, Ban xuất bản xin bày tỏ lòng biết ơn và niềm vinh hạnh được đông đảo Bạn đọc nhiệt tình ủng hộ tủ sách MK.PUB
“Trong thời gian qua chúng tôi rất vui và cảm ơn các Bạn đã gửi e-mail đóng góp nhiều ý kiến quý báu cho tủ sách
Mục tiêu và phương châm phục vụ của chúng tôi là:
« Lao déng khoa học nghiêm túc
» Chất lượng uà ngày càng chất lượng hơn,
© Tat cd vi Ban doc
Một lần nữa, Ban xuất bản MK,PUB xin kính mời quý Bạn doc tiếp tục tham gia cùng chúng tôi để nâng cao chất lượng sách Cụ thể:
Trong quá trình sử dụng sách, nếu quý Bạn phát hiện thấy bất kỳ sai sót nào (đò nhỏ) xin đánh dấu, ghi chú nhận xét ý kiến của Bạn ra bên cạnh rỗi gửi cuốn sách này cho chúng tôi theo địa chỉ:
Nhà sách Minh Khai
249 Nguyễn Thị Minh Khai, Q.1, Tp Hồ Chi Minh
E-mail: mk.book@minhkhai.com.un hoac mk.pub@minhkhai.com.vn Chúng tôi xin hoàn lại cước phí bưu điện và gửi trả lại Bạn cuốn sách cùng tên Ngoài ra chúng tôi còn gửi tặng Bạn một cuốn sách khác trong tủ sách MK.PUB Bạn có thể chọn cuốn sách này theo danh mục thích hợp sẽ gửi tới Bạn
Với mục đích ngày càng nâng cao chất lượng tủ sách MK.PUB, chúng tôi rất mong nhận được sự hợp tác nhiệt tình của quý Bạn đọc gần xa
“IK.PUB cùng Bạn đọc đồng hành” để nâng cao chất lượng sách Một lần nữa chúng tôi xin chân thành cảm ơn
MK.PUB
Trang 6Chương 17: GIỚI THIỆU ADO.NET 3.0 TRONG ASP.NET 2.0 11
1, Đối tượng SQLConnection 002 2t 22t 12 2 ren ray 13 1.1 Đăng nhập bằng Windows Authentication occccccccscccsesceesees 14 1.2 Đăng nhập bằng SQL Seruer AuthenticafiGP co 18
3 Đối tượng SQLDataReader nhieu 38
4 Đối tượng SQLDataAdapt@r nh HH ưn 41
5 Đối tượng DataSet, DataTable, DataView che 43 ð.1 Đối lượng DdQS6f eesti 43 5.9 Đối tượng DataTable veces cuteness 46 5.8 Đốt tượng DatqViG0 Ă cong eret 48
6 Sử dụng đối tượng Cache ằ cọ 2n HH iu 54 Chương 18: XÂY DỰNG LỚP DÙNG CHUNG susescaesavecaseeneess 67
1 Lép cung cap két néi co sO dit LGU cece rss eenereenesenteeeeneneeenre 67
2 Lép thuc thi tdc vu trém dit H6U occ eee eee eee ere etteeteneseeeneeeee 72
Trang 7
8 Lớp dùng để truy vấn dữ liệu cv chen 74 3.1 Sử dụng đối tượng DataSet uà DatuTqbÌe is 75 3.2, SU dung déi tuong Object, ArrayList vd String rece 77
4 Lớp trình bày đữ liệu trên điều khiển theo 80 4.1 Điều khiển DropDownList
4.3 Điều khiển ListBoa
4.3 Điều khiển CheckoxElSỈ c HH nhang ye 91 4.4 Điêu khiển RadioBuilonLiSE à che 95 4.6 Điều khiển TreeViG1U cớ 98 4.6 Điều khiển Grid ViI0 "HH Hà hê, 101 4.7 Điều khiển DetailsViM cu che rưệ, 102 4.8 Điêu khiển FormViGiU à cv nhe 104
4.0 Điều khiển DataList cscs eng 105
4.10 Điều khiển Ï@DeEQEGT uc 221 2 cecrse 106 4.11, Điêu khiển BulletedLlSE nhu 108 4.19 Điêu khiển AdRotator
Chương 19: LÀM VIỆC VỚI ĐIỀU KHIỂN TRÌNH CHỦ
1.8 Điều khiển Listox H1 n2 re 117
2 Điều khiển CheckBoxList, RadioButton Lisi cicc 120
3.1 Điều khiển CheckBoxLilsf, LH seo 120 2,3 Điều khiển HadioButtonLlSE neo 124
8 Điều khiến GridView, DetailsView, FormView nho 127
3.1 Điễu RAEN Grid View.cccccccccccsessssssssssssesseessserssecsarcessssuesssreeses 127
Trang 8
3.3 Điều khiển FormVi6iU chao 132
4 Điều khiển DataList, Repeater -.ciiienerrerinriee 134
4.1, Điều khiến DatQLiSE vụ Ăn Hưng khe 134
49 Điêu khiển ReDeQlGT cong ree 137
5 Điều khiển Menu, TreeView va ListView
6.1 Điều khiển Menu
5.2 Diéu khién TreeView
6 Điều khiển BulietedList, AdRotator -ccccccenerrrorrrree 144
6.1 Điều khiển BulletedLlF cccocccehehHheeeiderre 144 6.9 Điều khiển AdNOIGÍOT ào HH tre 146
Chương 20: LAM VIEC VOI XML
1 Đối tượng XmlText Writer, XmlTextReader eee eee eee 151
Li, Ghi da lidu ra tp tin XML vce eenrs cree eeneneenenees 153
9 Đối tượng XmlWriter, XmiReader cece eee ete 161
3.1 Ghi dữ liệu ra tập tìn KML vcoscsscssssscsssssnnennsineeseneceiestes 161
3 Đối tượng XmlDocument
3.1 Tạo uà ghỉ dữ liệu ra tập tin XML sree ete 169
BQ cối nan 175
3.3 Thêm, cập nhật vd xda did lidu XML 179 8.4 Tìm kiếm trên dữ liệu XML erences enacts 198
4 XML và đối tượng ADO.NET 2.0 cecerrrrrrrrrrrrrrre 196
Chương 21: CHỨC NĂNG GIỎ HÀNG VÀ ĐƠN ĐẶT HÀNG 201
1 Tìm kiếm và liệt kê sản phẩm ceeennrrierererrrrrrrree 201
92 Thêm sản phẩm vào giỏ hàng cnhheenrerreniee 218
3 Trình bày sản phẩm trong giỏ hàng ecrieerereenrrre 992
4 Dat hang
Trang 9MỤC LỤC Chương 22: USER CONTROL, VÀ MASTERPAGE 241
1 Tìm hiểu User Control
4.2 Tin tuyển dụng đã HH và 2 san seseee 309
43 Tiêu chí lìm kiếm đã HÁN cu 2n are 314
5 Chute năng nhà tuyển dụng á th n1 neo 320
6 Kết luận
Trang 10Trong tập 4 quyển 2, bạn đã tìm hiểu về các đối tượng
ADO.NET 2.0 nhu: SqlConnection, SqlCommand, SqlDataReader,
SqlDataAdapter va DataSet
Ngoài ra, bạn cũng đã tham khảo cách sử dụng các loại Data Souree như: SalDataSouree, AccessDataSource, XmlDataSource và
ObjectDataSource với các điều khiển trình chủ dang danh sách như:
GridView, DetailsView, DataList, Repeater, FormView, TreeView, Menu, AdRotator, DropDownList, ListBox, CheckBoxList va RadioButtonList trong quyén 3
Trong chương này, bạn tiếp tục tìm hiểu chỉ tiết cách sử dụng thuộc tính, biến cố, phương thức của đối tượng ADO.NET 2.0 trong
ASP.NET 2.0 nhu: SqlConnection, SqlCommand, SqlDataReader, SqlDataAdapter, DataSet, DataTable va DataView
Ngoài ra, chúng ta cũng tìm hiểu cách sử dụng đối tượng
Cache để nắm giữ dữ liệu thay vì đọc lại cơ sở dữ liệu nhiều lần
Các vấn đề chính sẽ được đề cập:
Đối tượng SqlConnection
Đối tượng SqlCommand
Đối tượng SqlDataReader
Đối tượng SqÌDataAdapter
Đối tượng DataSet, DataTable, DataView
Trang 11
1 DOI TUGNG SQLCONNECTION
Tiếp tục trong tập 4 “C# 2005 - Liập trình cơ sở dữ liệu” đã phát hành, chúng tôi tiếp tục giới thiệu cách sứ dụng các đối tượng ADO,NET 3.0 trong ứng dung ASP.NET 2.0,
Nếu như làm việc với ứng dụng Windows Forms thi ban cé thé mé mỗi kết nối cho mỗi người sử dụng khi đăng nhập vào hệ thống ứng dụng
với các lý do chính như sau:
® - Số người sử dụng thường không lớn
« Ung dung trién khai trong mạng cục bộ
© Qué trình truy cập và xử lý dữ liệu liên tục
» _ Cải thiện tính thực thi đữ liệu đo hạn chế số lần mở và đóng kết
nối cơ sở đữ liệu
Tuy nhiên, khi làm việc với ứng dụng Web, chúng ta cần xem xét đến hai vấn để, đó là ứng dụng Internet cho phép mọi người truy cập hay ứng
đụng Intranet ứng dụng cho doanh nghiệp
Nếu như ứng dụng Internet cho phép mọi người truy cập thì bạn có
thể mở kết nối cơ sở đữ liệu để truy vấn hay xử lý dữ liệu và đóng kết nối khi không còn nhu cầu sử dụng
Trong trường hợp ứng dụng Intranet, bạn cũng có thể cho phép mọi
người truy cập bằng cách mở kết nối cơ sử dữ liệu để truy vấn hay xử lý dữ liệu và đóng kết nối khi không còn nhu cầu sử dụng Do ứng dụng Intranet
thường sử dụng trong nội bộ doanh nghiệp, số lượng người sử dụng cũng có
giới hạn, bạn vẫn có thể sử dụng cơ chế kết nối cơ sở dữ liệu như ứng dụng Windows Forms, song bạn không nên lạm dụng cách kết nối theo loại này
mà nên đóng kết nối và mở lại kết nối khi có nhu câu sử dụng cơ sở dữ liệu
Để kết hợp tính tối ưu truy cập cơ sở dữ liệu của ứng dụng Windows Forms trong ting dung ASP.NET, ban can xay đựng kiến trúc 3 tầng (3
tiers) cho giải pháp này, tầng giữa (Middle tier hay còn gọi là Business tier) cho phép kết nối cơ sở dữ liệu và kết nối sẽ được mở liên tục, khi tầng giao điện (Presentation tier) có nhu cầu truy cập dữ liệu (Data tier), chúng chỉ
gọi các phương thức của tầng giữa để lấy giá trị trả về hay chỉ thị các tác vụ cho tầng này thực thị,
Mật giải pháp tối ưu cho ứng dụng Web được cho là chuyên nghiệp nếu bạn xây dựng chúng đựa trên kiến trúc 3 tang Tuy nhiên, trong quyén
4 ching ta chi tim hiéu cách xây dựng các lớp dùng chung chuyên dụng cho
Trang 12Chương 17: Giới thiệu ADO.NET 2,0 trong ASP.NET 2.0 18 In
chức năng kết nối, truy cập và xử lý cơ sở đữ liệu (trình bày trong chương kế
tiếp), phần kiến trúc 3 tầng sẽ được trình bày trong cuốn sách “C# 2005 —
Lập trình nâng cao”
'Trở lại đối tượng dùng để kết nối cơ sở dữ liệu SQL Server, chúng ta
sẽ tìm hiểu cách sử dụng đối tượng SqlConnection trong ứng dụng
ASP.NET 2.0 qua các ví dụ tham khảo
Như cách làm việc với ứng dụng Windows Forms, khi làm việc với cơ sở
đữ liệu SQL Server trong ASP.NET 3,0, bạn khai báo với cú pháp như sau:
Nếu như bạn lấy chuỗi kết nối cơ sở đữ liệu trong tập tin App.Conũg
hay tập tin định dạng Text (ni) khi làm việc véi tng dung Windows Forms thi trong ứng dụng ASP.NET 2.0, các thông tin này có thể lưu trong tập tin App.Config
Luu ý: Chúng ta sẽ tìm hiểu chỉ tiết về cấu trúc của tập tin App.Config
ở chương trình bày về cấu hình ứng dụng ASP.NET 2.0 trong phần triển khai ứng dụng của quyển tiếp theo
Một trong những vấn đề chính của chuỗi kết nối cơ sở dữ liệu là bạn kết nối cơ sé đữ liệu theo hình thức đặc quyền (Authentication) của hệ điều hanh Windows (Windows Authentication) hay SQL Server Authentication
Trang 13
1.1, Dang nhap bang Windows Authentication
Nếu bạn chọn Windows Authentication, người sử dụng dùng tài khoản và quyền hạn của tài khoản này trong hệ điều hành Windows để đăng nhập vào cơ sở dữ liệu SQL Server
Mặc định của SQL Server 7.0, 2000 hay 2005 đều cho phép bạn đăng nhập bằng đặc quyển này Tuy nhiên, ngoại trừ tài khoản đăng nhập là Administrator, các tài khoản còn lại cần phải được đăng ký trong SQL Server Luu ý: Để tìm hiểu chỉ tiết cách quan ly tài khoản trong cơ sở dữ liệu SQL Server 2000, bạn có thể tìm đọc cuốn sách “Quản trị SQL Server 2000”
do nhà sách Minh Khai phát hành
Chẳng hạn, khi bạn làm việc với SQ1L Server 2000, để đăng ký kết nối cơ sở dữ liệu SQL Server tit SQL Server Enterprise Manager (EMC) thi bạn cần chọn một trong hai cách đăng nhập như hình 17-1
Registered SOL Server Properties [
is Always Options
Trang 14
Trong hình trên, bạn có thể chọn cách kết nối cơ sở đữ liệu SQL Server bằng cách chọn vào tùy chọn Use Windows Authentication hay Use SQL Server Authentication
Chú ý: Nếu bạn làm việc với SQL Server 2005 thì cửa sổ cho phép bạn đăng nhập SQL Server Management Studio như hình 17-2
Server type Ỷ “ Database Engine x
authềnlicatiorr? Windows Authentication bd]
Lo] Remember password
Hình 17-3: Kết nối cơ sở đữ liệu SQL Seruer 2005
Trong hình trên, bạn có thể chọn cách kết nối eơ sở dữ liệu SQL Server theo Windows Authentication hay SQL Server Authentication Như vậy, khi làm việc với cơ sở dữ liệu SQL Server, người sử dụng
không cần cung cấp tài khoản và mật khẩu để đăng nhập vào SQL Server Chú ý: Để tìm hiểu chỉ tiết cách quần lý tài khoản trong cơ sở dữ liệu
SQL Server 2005, bạn có thể tìm đọc cuốn sách “Quản trị cơ sở dữ liệu SQL Server 2005” do nhà sách Minh Khai sắp phát hành
'Tương tự như vậy, khi bạn kết nối cơ sở dữ liệu SQL Server từ tiện ích SQL Query Analyzer bing cach chon céch két néi co sé dữ liệu SQL Server
bang Windows Authentication hay SQL Server Authentication nhy hình 17-3
Trang 15Để bắt buộc người sử dụng kết nối cơ sở dữ liệu SQL Server bằng đặc
quyén Windows Authentication thì ban chon tiy chon Windows Only trong
phần cấu hình Authentication cia cita sé SQL Server Property (Configure)
nhu hinh 17-4,
Lưu ý: Bạn có thể kích hoạt cửa sổ này từ thực đơn Tools Ì SQL Server Configuration Properties nếu bạn đã đăng ký kết nối cơ sở dữ liệu
' bằng quyén Administrator hay sa
"+ Trong trudng hgp làm việc với cơ sở dữ liệu SQL Server 2005, để bắt
- buộc người sử dụng kết nối cơ sở dữ liệu SQL Server 200ð bằng đặc quyền
Windows Authentication thi ban chon tiy chon Windows Authentication
Mode trong phẩn cấu hình Server Authentication của cửa sổ Server
Property | Security nhu hinh 17-5
Luu ý: Ban có thể kích hoạt cửa sổ này từ thực đơn R-Click trên tên cia Server | Properties từ của sổ Objeet Explorer nếu bạn đã đăng ký kết nối cơ sở dữ liệu bằng quyén Administrator hay sa
Trang 16Hinh 17-5: Cdu hinh két noi co sé dit liu SQL Server 2005
Như vậy, khi SQI Server được cấu hình kết nối cơ sở dữ liệu theo đặc quyền của hệ điều hành thì bạn khai báo chuỗi kết nối cơ sở đữ liệu như sau:
<connectionStrings>
<add name="RCVDB2000"
connect ionString="servers (local);
Integrated Security=true;
Trang 17
đatabase=RecruitVietnamDb" />
</connectionStrings>
Chú ý: Để ứng đụng ASP.NET 2.0 được tương tác với cơ sở đữ liệu
SQL Server, bạn có thể đăng nhập hệ điêu hành với tài khoán đã đăng ký
trong SQL Server và được quyển làm việc trên cơ sở dit liệu
RecruitVietnamDb
1.2 Dang nhap bing SQL Server Authentication
Ngược lại với trường hợp trên, nếu bạn cho phép người sử dụng truy
cập cơ sở dữ liệu bằng tai khodn cia SQL Server thi sir dung chuỗi kết nối
tương tự như sau:
Như vậy, khi làm việc với cơ sở dữ liệu SQL Server, người sử dụng
phải cung cấp tài khoản và mật khẩu để đăng nhập vào SQL Server
Để có thể sử dụng chuỗi kết nối cơ sở dữ liệu với hai thuộc tinh User Id
(uid) va Password (pwd), bạn cấu hình trong SQL Server 2000 như hình 17-6
nhu ễ
Hình 17-6: Cho phép kết nối bằng SQL Server Authentication
Tương tự như vậy, khi bạn làm việc với 8QL Server thì bạn chọn vào SQL Server and Windows Authentication mode như hình 17-7
Trang 18ky tai khodn nay trong phan Logins cia Security, điêu này có nghĩa là người
sử dụng sau khi đăng nhập hệ điều hành thì phải đăng nhập SQL Server với
tài khoản và password của họ đã khai bdo trong SQL Server néu kết nối Chú ý: Nếu nhà quần trị chỉ cho phép kết nối cơ sở dữ liệu bằng đặc quyền hệ điều hành và ngăn cấm cách đăng nhập bằng đặc quyền của SQL Server 2005, bạn sẽ nhận chuỗi lỗi phát sinh tương tự như hình 17-8
Hình 17-9: Chuỗi lỗi khi kết nối cơ sở dit ligu SQL Server 2000
Lưu ý: Một khi bạn để lộ username và password cho những người có
ý xấu, họ có thể truy cập trái phép tài nguyên của hệ điều hành hay trong
cơ sở dữ liệu 8QL Server của bạn tùy thuộc vào cách cấu hình như trên
Trang 19
1.8 Đọc chuỗi kết nối
Nếu như bạn đã làm việc với ASP.NET 1.0 hay 1.1 thì cách đọc chuỗi
kết nối cơ sở dữ liệu trong tập tỉn Web.Config có cú pháp như sau:
ConfigurationSettings.AppSettings (
"ConnectionString");
Lưu ý: Dé sử dụng phương thức AppSettings ở trên, bạn cần khai báo
sử dụng không gian tên như sau:
using System.Configuration;
Trong đó, chuỗi kết nối cơ sở dữ liệu khai báo trong tập tin
Web.config nhu sau:
Chú ý: Bạn không nên khai bdo username và password cé gid tri
nguyên thủy như trên mà sử dụng phương thức do bạn định nghĩa để mã
hóa chúng, sau đó dùng phương thức khác để giải mã hai giá trị này khi kết nổi cơ sở đữ liệu SQL Server
hi làm việc với ứng dụng ASP.NET 2.0, thay vì sử dụng phương thức
AppSettings của đối tượng ConñigurationSettings, bạn sử dụng thuộc tính ConnectionString của đối tượng WebConfigurationManager như sau:
Trang 20Luu ¥: Dé sứ dụng thuộc tính ConnectionString ở trên, bạn cần khai
báo sử dụng không gian tên như sau:
server=(ocal); Integrated Security=tme; database=RecruttViemamDb
Data Source=(local)\ SQLEXPRESS; Initiat Catalog=Recrnit VietmamDb;
Integrated Security=True
Hình 17-10: Đọc chuỗi kết nối cơ sé đữ liệu
Trang 21
Sau khi khai báo chuỗi kết nối cơ sở dữ liệu, bạn có thể khai báo mở
kết nối bằng phương thức Open như sau:
Khi không còn nhu câu sử dụng đối tugng SqlConnection, bạn có thể
gọi phương thức Close và Dispose
Ví dụ 17-3 Khai báo SqlComection|
Trang 2211 Khai báo mở kết nối cơ sở đã liệu sg1Connection Open () ;
Literall.Text += "Opened database: "+
LỊ Khai báo giải phóng đối tượng SgạÌConnection
Literall.Text += "Pailed:" + ex.Message;
sqlConnection.Dispose(};
Literall.Text += "Disposed database: "+
DateTime Now ToLongTimeString(};
Literell.Text += "<br>";
}
Khi thực thi chương trình, kết quả trình bày như hình 17-11
“+ UntiHed Page - Windows TT nh: Explorer (= fois)
Trang 23Để kiểm tra trạng thái của đối tượng SqlConnection, bạn sử dụng
thuộc tính State và enum là ConnectionState (Closed, Open, Broken, )
Ví dụ, bạn khai báo kiểm tra đối tượng SqlConnection đã đóng hay
chưa thì khai bả như sau
Chú ý: Bạn có thể tìm hiểu cách mã hóa và giải mã username và
password cho chuỗi kết nối cơ sở dữ liệu trong cuốn “C# 2005 - Tập 6°
3 ĐỐI TƯỢNG SQLCOMMAND
Tương tự như đối tượng SglConnection, khi làm việc với ứng dụng ASP.NET 2.0, bạn có thể khai'báo và sử dụng đối tượng SqiCommiand nhu
đã dùng trong ứng dụng Windows Forms,
Trang 24
Như vậy, khi sử dụng đối tượng này, bạn có thể khai và khởi tạo một
trong 4 cú pháp sau:
SqlCommand sq1Command = new Sq1Command () ;
SqlCommand sqlCommand = new $q1Command (commandText ) ; SqlCommand sqlCommand = new Sq1Command (commandText, sqlConnection);
SqlCommand sqlCommand = new S$q1lCommand (commandText ,
sqlConnection, sqlTransaction);
Sau khi khai báo và khởi tạo, bạn có thể gán giá trị cho các thuộc tính của đối tượng này như: CommandText, CommandType, ComandTimeout,
Connection, Transaction, Parameters,
Chẳng hạn, bạn khai báo đoạn chương trình trong biến cố Page_Load của trang CommandPage.aspx để in ra tổng số mẩu tin cha bang
tblJSAceounts như ví dụ 17-8
Khai báo x chói cu đối tượng SqlCommandl
protected void Page_Load (object sender, EventArgs e}
Trang 25
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = CommandType Text ;
Hình 17-18: Sở dụng đối tượng SqiCommand
Ngoài các thuộc tính vừa trình bày ở trên, bạn có thể sử dụng các
phương thức như ExecuteNonQuery, ExecuteScalar, ExecuteReader để
thực thi phát biểu SQL hay thủ tục nội tại và ExecuteXmlReader để đọc dữ
ligu theo dinh dang Xml :
Trang 26Chương 17: Giới thiệu ADO.NET 2.0 trong ASP.NET 2.0
int records = sqlCommand ExecuteNonQuery ();
Chẳng hạn, bạn thiết kế giao diện trang thêm mới mẩu tin vào bảng
Hình 17-14: Sử dụng phương thức của déi tuong SqlCommand
Khi người sử dụng nhấn nút Save, bạn lưu thông tin nhập trên man hình vào bảng tblJobCategories như ví dụ 17-4
protected void btnSave_Click(object sender,
EventArgs e€)
{
L1 Khai báo uà khởi tạo đối tượng SqÌConnection
sqlConnection = new SqlConnection():
LỊ Khai báo va khôi tạo đối tượng SqiCommand
sqlCommand = new Sqlcommand();
1 { Khai bdo thuộc tính cho đối tượng SqlCommand
Trang 27
sqiCommand.CommandText =
"Insert into tblJobCategories"+
“values (GID, @Name)";
// Khai báo tham số
AddParameters (sqlCommand,
{ new string[2]{"@ID", "@Name"},
new string[2] {txtID.Text, txtName Text} de sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = Commandatype Text ;
{1 Thực thị phát biểu SQL dạng Insert bằng / 1 phương thúc ExecuteNonQuery
3£{sg1Command ExeCuteNonQuery () >0)
{ literalError.Text =
"New record has been inserted.";
!1 Tạo mã mới bằng phương thức CreateNeuID
CreateNewTD () ;
Sg1Command Dispose (} ; sqiconnection.Close()};
}
catch (Exception ex)
{ literalError.Text =
"<br>Failed: " + ex.Message;
}
søg1Connection.Dispose () ;
} Luu ý: Đối tượng SglConnection, SqlCommand và chuỗi kết nối cơ sở
đữ liệu khai báo bên ngoài như sau:
string connectionString =
WebContigurationManager ConnectionStrings[
"RCVDB2000"] -ConnectionString;
SqlConnection sqlConnection ? Sqg1Command sq1Command :
Khi người sử dụng nhập dữ liệu như hình 17-15, rồi nhấn nút Save thì kết quả trình bày như hình 17-16, trong đó mã số (JobCategoryID) mới
được tạo ra
Trang 28Category Name: jE
Hình 17-15: Thém moi mau tin
Add New Job Category
New record has been mserted
"Trong đó, phương thức AddParameters cho phép bạn thêm tham số
va gid trị vào đối tượng SqlCommnand có cấu trúc như vi dy 17-5
Khai báo phương thức AddParameters
void AddParameters (SqlCommand sqiCommand,
Trong ví dụ trên, chúng ta có nhu cầu lấy ra mã số lớn nhất để tạo mã
số kế tiếp, bởi vì chúng ta không muốn tạo số tự động tăng Thay vào đó,
chúng ta cần kiểm soát mã số này với lý do kiểu dữ liệu cho số tự động tăng
là kiểu int thay vì tỉnyint
Như vậy, mỗi khi có nhu cầu thêm mới mẩu tìn, bạn tự động thêm sé ứng với JobCategoryID trên điều khiển TextBox có thuộc tính ID là txtÏD
Trang 29
Để làm điều này, bạn khai báo phương thức CreateNewID bằng cách
sử dụng phương thức ExecuteScalar nhu vi du 17-6
?] Khởi tạo đối tugng SqiCommand
Sg1Command z new Sq1Command (} ;
£1 Khai báo thuộc tính cho đối tượng SqlCommand
1] Gọi phương thúc ExecuteScalar của
f1 đối tượng SglCommand
txtID.Text =
sqlCommand.ExecuteScalar() ToString() sqlCommand.Dispose();
Trang 30JobCategories là số tự động
Trong trang JobCategory.aspx, bạn có thể tìm thấy khai báo gọi
phương thức CreateNewID trong biến cố Page_Load như ví dụ 17-7
í dụ 17-7: Khai báo gọi phương thức
protected void Page_Loađ (objecL sender, EventArgs e)
Để làm điều này, bạn gọi phương thức CreateNewID trong biến cố
Gliek của nút btaNew như ví dụ 17-8
í đụ 17-8: Khai báo gọi phương
protected void btnNew_Click {object sender, EventArgs e)
CreateNewID(};
}
Trang 31
2.3 Phương thức ExecuteReader
Phương thức ExecuteReader dùng để đọc và trả về tập dữ liệu chỉ đọc
và điều hướng một chiều rồi điển vào đối tượng SglDataReader
Khi bạn có nhu cầu đọc tập đữ liệu có số lượng nhỏ hay không có nhu cầu điều hướng trên từng mẩu tin thì sử đụng phương thức này cùng với đối tượng SqlDataReader
Để tìm hiểu chỉ tiết về cách sử dụng phương thức này, bạn tim doc tap
4 của bộ sách “C# 2005 — Lập trình cơ sở dữ liệu” đã phát hành
Chẳng hạn, trong trường hợp này chúng ta khai báo sử dụng phương thức ExecuteReader trong chức năng hiển thị đữ liệu trên các điều khiển ASP.NET 2.0, cho phép người sử dụng cập nhật vào cơ sở đữ liệu như ví đụ
/1 Khai bảo uà khởi tao déi tugng Common
Common cls = new Common () ;
11 Khai bdo goi ham gidi ma chudi QueryString
itemId=
cls.RCVQueryStringDecrypting(itemId) ; /1 Khai bdo va khdi tgo déi tugng SqlConnection
sqlConnection = new SqiConnection();
sqiConnection.ConnectionString = connectionString;
try
{
sglConnection Open () ;
11 Khai báo uà khởi tạo đối tượng SqlCommand
sqlCommand = new Sq1Command QO;
sqiCommand.Commana@Text =
"select * from tblJobCategories"
Trang 32#2 Untitled Page - Windows Internet Explorer PGES)
oe- | hetp:fflocalhost; 1035) 48 (2) Gouge
Trang 33
Nếu người sử dụng chọn vào mẩu tin có JobCategoryName là Software Development trong hinh 17-18, trang JobCategory.aspx xuất hiện như hình 17-19
Update Job Category
CategortD: BS
Category Name: [Sofware Development _ TS
eee] (New) (Reset)
Hinh 17-19: Cho phép cập nhật dữ liệu
Để cho phép người sử dụng cập nhật đữ liệu, bạn khai báo đoạn chương trình trong biến cố Cliek của nút Save như ví dụ 17-10
Khai báo thêm mẫu tín|
protected void btnSave_Click(object sender,
EventArgs e)
1] Khai bdo va khdi tao déi tugng SqiConnection
sqlConnection = new SqlConnection();
f1 Khai bdo vd khdi tạo déi tuong SqlCommand
sqlCommand = new SqlCommand() ; /1 Khai bdo thuộc tính cho đối tuong SqiCommand
if (btnSave.Text=="Save")
sqiCommand CommangText =
"Insert into tbldobCategories"+
“values (@ID, @Name)";
}
else
{
Trang 34new string[2]{txtID.Text,txtName.Text});
sqlCommand.Connection = sqlConnection;
sqlCommand.CommandType = CommandType Text;
"New record has been inserted.";
/! Tạo mã mới bằng phuong thitc CreateNewID CreateNewID();
Trang 352.4 Phuong thiic ExecuteXmlReader
Tương tự như phương thức ExecuteReader, phuong thức ExecuteXmlReader cho phép bạn đọc dữ liệu theo định dạng XML và điển vào đối tượng XmlReader
Chẳng hạn, bạn khai báo phát biểu SQL dạng SELECT như sau:
select * from tblữcbCategories
for XML Auto
Khi thực thi phat biéu SQL dang SELECT trong SQL Query Analyzer cia SQL Server 2000 hay Microsoft SQL Server Management Studio, kết quả trả về trình bày tương tự như sau:
JobCat egoryName="Engineering and Technology"/>
Để doc dữ liệu này, bạn có thể sử dụng phương thức ExecuteXmlReader nhu vi du 17-12
Trang 36sqlCommand = new SqlCommand()};
11 Khai báo phát biéu SQL tra vé dit ligu dinh dang XML
// Khai bdo đối tượng XmilReader 0à gọi
catch (Exception ex)
Literall.Text += "Failed:" + ex.Message;
Trang 37
Z2 Untitled Page - Windows Internet Explo a le
Quaility Controt and Test
Engineering and Technology
Hình 17-20: Sứ dụng phương thie ExecuteXmlReader
3 ĐỐI TƯỢNG SQLDATAREADER
Như vừa trình bày trong phần phương thức ExecuteReader, déi tượng SqlDataReader ding dé nim git tập đữ liệu chi đọc và diéu hướng một chiều từ cơ sở đữ liệu SQL Server
Trong tập 4, bạn không thể sử dụng đối tượng SqlDataReader để
trình bày dữ liệu trên điều khiển GridView, nhưng khi làm việc với
ASP.NET, bạn có thể gán đối tượng này cho thuộc tính DataSouree của điều
khiển GridView
Chẳng hạn, bạn khai báo đoạn chương trình trong biến cd Page_Load
của trang dobCategories.aspx để gọi phương thức ExecuteReader rôi điền
dữ liệu vào đối tượng SqlDataReader và trình bày trên điều khiển GridView
như ví dụ 17-18
vi du 17-13: Khai bao
protected void Page_Load (object sender, EventArgs e) {
11 Khởi tạo đối tượng SqlConnectiion
sqlConnection = new Sqlconnection();
sqiConnection.CconnectionString =
Trang 38(1 Khai bdo vé khdi tao déi tugng SqiCommand
sqlCommand = new Sq1Command (} ; sqlCommand.CommandText =
"select * from tblJobCategories";
sqlCommand.Connection = sqlConnection;
sqlCommand CommandType = CommandType Text;
11 Khai báo đối tượng SạIDo(aReader SqlDataReader sqlDataReader
Khi thực thi chương trình, bạn có thể tìm thấy danh sách mẩu tin
trong bang tblJobCategories trinh bày trên trang dobCategories.aspx như
hình 17-21
Mặc dù cho phép bạn điển dữ liệu vào điều khién GridView tit déi
tượng SqlDataReader, nhưng bạn không thể cài đặt phân trang cho điều khiển này do đữ liệu không được điều hướng
Trang 39
Hinh 17-21; Danh séch méu tin
Vi du, ban khai báo thuộc tinh AllowPaging cia diéu khién GridView ˆ
là True thì lỗi sẽ phát sinh như sau:
The data source does not support server-side data
paging
Trong đó, phương thức CreateLink dùng để tạo ra liên kết trên từng
phương thức của điểu khiến GridView bằng cách sử dụng đối tượng GridViewRow như ví dụ 17-14
void CreateLink (GridView Gridviewl,
stringurl, int £ielđ1đInđex,
int fieldLinkindex)
{
Common cls = new Common O);
foreach (GridViewRow
gridViewRow in Gridviewl Rows)
HyperLink hyperLink = new HyperLink ();
hyperLink Text =
gridViewRow.Cells [f£ieldLinkIndex]} -Text;
hyperLink.NavigateUr1 =url +
"?2TtemTđ=" + c1s RCVQueryStringEncrypt ing (
Trang 40
gridViewRow.Cellis[(fieldIdIndex].Text); gridViewRow.Cells[
1}.Controls.Add(hyperLink) ;
Chú ý: Để tìm hiểu chi tiết về các thuộc tính và phương thức của đối tượng SqlDataReader, bạn có thể tìm đọc tập 4 - quyển 2
4 ĐỐI TƯỢNG SQLDATAADAPTER
Đối tượng SaIDataAdapter đã được giới thiệu trong quyển 2 của tập 4, trong ASP.NET 3.0 bạn có thể sử dụng đối tượng này để đọc dữ liệu và điển vào đối tượng DataSet hay DataTable
Ngoài ra, bạn có thể kết hợp đối tượng SqIDataAdapter với đối tượng 8alCommand để cập nhật dữ liệu từ đối tượng DataSet hay DataTable trở lai eo sở dữ liệu nguồn SQL Server
Chẳng hạn, khi bạn muốn trình bày danh sách tài khoản người sử dung trong bang tblJSAccounts vào điều khiển GridView thi ban có thể khai báo trong biến cố Page_ load của trang Áccounis.aspx tương tự như ví