1. Trang chủ
  2. » Giáo án - Bài giảng

C# 2005. Tập 5. Lập trình ASP.NET 2.0 - Quyển 4 - Đối tượng ADO.NET 2.0 và XML

347 1,6K 1
Tài liệu được quét OCR, nội dung có thể không chính xác

Đ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

Định dạng
Số trang 347
Dung lượng 6,68 MB

Nội dung

Trang 1

ĐẠI HỌC NHA TRANG M 005.133 Ph 104 Kh u Khang (Chú biên) Giới thiệu A Lớp tương tác Lý thuyết dễ Ví dụ phong phú @ Ứng dụng tuyển

ˆ THU VIEN DH NHA TRANG _`

IA | Chie mime ie thu uién cia ching tae

Trang 2

tram Phạm Hữu Khang (Chủ biên)

C# 2005

Tap 5: Lap trinh ASP.Net 2.0 Quyén 4:

am?

DOI TUGNG ADO.NET 2.0 VA XML

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

Ngồ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

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

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 hồ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

Trang 6

MỤC LỤC

U21) 2ã." 4ã 8

'THƯ NGỎ e- — ,ÔỎ 5

MỤC LỤC nSsHsee HHerrisseed — 7

Chươ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

1.8 Đọc chuỗi kết HỔI vác chay 20

9 Đối tượng SQLCommand

2.1, Phương thúc ExecuteNonQuery,

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

4.18 Điều khiển Menu

Chương 19: LÀM VIỆC VỚI ĐIỀU KHIỂN TRÌNH CHỦ

1 Điều khiến DropDownList, ListBox .1138

11 Diéu khién DropDownList 113

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

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

Trang 9

Chương 22: USER CONTROL, VÀ MASTERPAGE 241 1 Tìm hiểu User Control

2 Trang MasterPage

2 Nộp đơn xin việc trực tuyến

3, Lưu các lựa chọn

4 Thông tin của tài khoản so nu n1 Hee 303

—= 308

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

Trang 10

Chương 17:

GIỚI THIỆU ADO.NET 2.0 TRONG ASP.NET 2.0

Tóm tắt chương 17

Trong 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

QS

NN

NOK

Sử dụng đối tượng Cache

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ộ © Q 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ị,

Trang 12

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:

Sqiconnection sqlConnection = new SqlConnection(); sqlConnection.ConnectionString = connectionString; Hay SqlConnection sqiConnection = new SqlConnection{connectionString);

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 <connectionStrings> <add name="RCVDB2000" connectionString="server=(local); Integrated Security=true; database=RecruitVietnamDb" /> <add name="RCVDB2005" connectionstring=

"Data Source=({local) \SOLEXPRESS; Initial Catalog=RecruitVietnampbb; uid=sa;pwd=;"

providerName="System.Data.SqlClient" /> </connectionStrings>

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

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

Server Group: ụ

ly stat SQL ấ ve nhên canyisodng,

KH:

dal

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

‘Server name: MYSOLUTION) 7 #

authềnlicatiorr? Windows Authentication bd]

“Ser hang, |MVSBÙLTIDMAdririeu oe

Lo] Remember password

; 2E, gonnect it Cancel li Help Hf Options >> ]

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

Trang 15

Hình 17-3: Đăng ký kết nối cơ sở dữ liệu SQL Seruer 2000 từ SQL Query

Analyzer

Để 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

Trang 16

SQL Server Properties (Configure)} - (LOCAI.}

ed Pocestns # Em Ps rnectont AF Database Settings

Hinh 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"

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:

<connectionstrings> <add name="RCVDB2005"

connectionString=

“Data Source= (local) \SQLEXPRESS; Initial Catalog=RecruitVietnambb;

uid=sa;pwd=;"

providerNames="System,Data Sqlclient" />

</connect ionStrings>

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

Trang 18

eon errs Ế Server 1g - mysolution\sqlexpress | Bae «Heb:

Server authentication

' Connections 20) Windows Aidhetiication made:

(BP Database Settings OM es “ Advanced oS Permissions

Hình 17-7: Cho phép két n6i bing SQL Server Authentication Khi dang nh4p SQL Server bing tài khodn SQL Server, ban cần đăng

ky 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-8: Chuỗi lỗi khi bết nối cơ sở đữ liệu SQL Server 2005 Trong trường hợp làm việc với cơ sở dữ liệu SQL Server 2000, chuỗi

lỗi phát sinh tương tự như hình 17-9

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

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:

<configuration> <appSettings> <add key="ConnectionString" value="servers, ;uid=sa;pwd=; database= RecruitVietnamDb"/> </appSettings> </configuration>

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:

string connectionString =

WebConfigurationManager.ConnectionStrings[

"RCVDB2000"] ConnectionString;

Trong đó, thuộc tính name có giá trị RCVDB2000 được khai báo trong tập tin Web.Conlg như sau:

Trang 20

"Data Source= (1oca1) \SOLEXPRESS¿ Initial Catalog=RecruitVietnamDb;

Integrated Security=True"

providerName="System.Data.SqlClient" /> </connectionStrings>

Luu ¥: 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:

using System.Web.Configuration;

Chẳng hạn, bạn khai báo trong biến cố Page Load cia trang

Default.aspx như ví dụ 17-1

protected void Page_Load (object sender, EventArgs e)

{

string connectionString =

WebConfi gurationManager ConnectionStrings [ "RCVDB2000"] ConnectionString;

Literall.Text=connectionString;

connectionString =

WebConfigurat ionManager ConnectionStrings|[ "RCVDB2005 "1 ,ConnectionString;

Literall.Text +="<br>";

Literall.Text += connectionString;

}

Khi thực thị chương trình, bạn có thể tìm thấy hai chuỗi kết nối khai báo trong tập tin Web.Config được trình bày như hình 17-10

T10 - Windows Internet Explorer

ey @) hitp:/flocahost: 10357488) x)

server=(ocal); Integrated Security=tme; database=RecruttViemamDb

Data Source=(local)\ SQLEXPRESS; Initiat Catalog=Recrnit VietmamDb; Integrated Security=True

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:

sg1Connection Open () ;

Lưu ý: Nếu bạn không truyển chuỗi kết nối cơ sở dữ liệu bằng Constructor thi bạn có thể gán chuỗi kết nối này cho thuộc tính

ConnectionString như sau:

sq1Connection.Connection8tring = connecEionString;

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 sqlConnection.Close():

sqlConnection.Dispose();

Ngoài ra, bạn có thể khai báo gọi các phương thức: ChangeDatabase, GetSchema, CreateCommand, RetrieveStatistics hay thuộc tính: DataSource,

Database, ServerVersion của đối tượng SqlConnection nếu có nhu cầu Chẳng hạn, bạn khai báo các thuộc tính và phương thức của đối tượng SqlConnection trong biến cố Page_Load của trang ConnectionPage.aspx để kết nổi cơ sở dữ liệu SQL Server 2000 như ví đụ 17-2

Ví dụ 17-3 Khai báo SqlComection|

protected void Page_Load (object sender, EventArgs e}

{

11 Khai báo chuỗi kết nối cơ sở dữ liệu

string connectionString =

WebConfigurationManager.ConnectionStrings[ "RCVDB2000"] ConnectionString;

! Khai báo uà khởi tạo đối tượng SqlConnection

SqlConnection sqlConnection = new SqiConnection{);

Literall.Text = "Object Initiated: "+ DateTime.Now.ToLongTimeString();

Literall.Text += "<br>";

1} Khai bdo thuéc tính cho đối tượng SqlConnecHon sqlConnection,ConnectionString =

connectionString; try

Trang 22

11 Khai báo mở kết nối cơ sở đã liệu sg1Connection Open () ;

Literall.Text += "Opened database: "+ DateTime.Now ToLongTimeString (); Literall.Text += "<br>";

Literall.Text += "Server Version: "+

sq1Connection ServerVersion;

Literall.Text += "<br>"; 11 Khai báo đóng hết nối cơ sở đữ liệu

sqlConnection.Close();

Literall.Text += "Closed database: "+

DateTime.Now.ToLongTimeString(); Literall.Text += *<br>"; t catch(Exception ex) { }

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)

Object Initiated: 11:17:06 AM Opened database: 11:17:06 AM Server Version: 08 00.0194

Trang 23

Trong trường hợp bạn đổi thuộc tính name từ RCVDB2000 thành RCVDB2005 thì kết quả trình bày như hình 17-12

Object Initiated: 11:18:18 AM Opened database: 11:18:18 AM Server Version: 09.00.1399 Closed database: 11:18:18 AM Disposed database: 11:18:18 AM

Hình 17-12: Sử dụng đối tượng SqlConnection uới cơ sở dữ liệu

SQL Seruer 2005

Để 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

oniState ‘l Connect ionState.Closed} it { sqlConnection.Close(}; sqlConnection.Dispose{);

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

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}

{

11 Khai báo chuỗi kết nối cơ sở dữ liệu

string connectionString = WebConfigurationManager Connect1onStrings [ "RCVDB2005"] ConnectionString; SqlConnection sqlConnection = new Sq1Connection () ; sqiConnection.ConnectionString = connectionString; try sqlConnection.Open(};

+1 Khai báo nà khởi igo déi tugng SqiCommand Sqlcommand sqlCommand =

new Sq1Command () ;

11 Khai báo thuậc tính cho đối tượng SqlCommand

sqicommand.CommandText =

Trang 25

sqlCommand.Connection = sqlConnection; sqlCommand.CommandType = CommandType Text ; Literall.Text += "Count: "+ sqlCommand.ExecuteScalar().ToString(); Literall.Text += "<br>";

/1 Giải phóng đối tượng SqlCommand

sqlCommand.Dispose();

11 Khai báo đóng kết nối cơ sở dữ liệu

sqlConnection.Close(); catch (Exception ex)

{

Literall.Text += "Failed: " + ex.Message;

}

11 Khai báo giải phóng đối tượng SqÌlConnection

sqlConnection.Dispose();

thi thực thi chương trình, bạn có thể thấy kết quả trình bày như

hình 17-13

Z- Untitled Page - Windows Internet E [= |Í](X] GS + [BB http: focalhost: 1035) es) k # : 2) Count: 148

Hình 17-18: Sở dụng đối tượng SqiCommand

Ngồ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ữ

Trang 26

Chú ý: Bạn có thể tìm thấy chỉ tiết các phương thức và thuộc tính của đối tượng SqlCommand trong tập 4 quyển 2

2.1 Phương thức ExecuteNonQuery

hi có nhu cầu thực thi phát biểu SQL dạng hành động hay thủ tục nội tại, bạn có thể sử dụng phương thức này với cú pháp như sau:

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

tblJobCategories như hình 17-14

dd New Job Category

1 F Literal “lteratError* ] Cavogoryin: rey

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(): sqiConnection ConnectionString = connectionString;

try

{

1] Khai bdo mé két néi co sở dữ liệu

sg1Connection Open (} ;

LỊ Khai báo va khôi tạo đối tượng SqiCommand

sqlCommand = new 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

Trang 28

Add New Job Category

CategoryID: |4 Category Name: jE

Hình 17-15: Thém moi mau tin

Add New Job Category New record has been mserted

CaegexIDiS | Category Name: Hình 17-16: Thêm thành cơng

"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, string[} parameterCollection,

string[] valueCollection)

for (int i = 0; i < parameterCollection.Length; it+)

sqlCommand Parameters AddWithvalue (

parameterCollection[il, valueCollection[i]);

} }

9.2 Phương thức ExecuteSecalar

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

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

void CreateNewID()

if Thém méi méu tin

btnSave.Text = "Save";

txtID.Text i txtName.Text = "1";

11 Khéi tao déi tugng SqlConnection

sqlConnection = new SqlConnection({);

sqlConnection.ConnectionString =

connect ionString; try

{

sqlconnection.Open();

?] Khởi tạo đối tugng SqiCommand

Sg1Command z new Sq1Command (} ;

£1 Khai báo thuộc tính cho đối tượng SqlCommand

sqlCommand.CommandText =

“select Max(JobCategoryID) +1" + " from tblJobCategories";

sqlcommand Connection = sqiConnection;

sqlCommand.CommandType

CommandType.Text;

1] Gọi phương thúc ExecuteScalar của f1 đối tượng SglCommand

txtID.Text = sqlCommand.ExecuteScalar() ToString() sqlCommand.Dispose(); sqlConnection.Close(); }

catch (Exception ex)

{

literalBrror.Text +=

"Failed: " + ex.Message;

}

Trang 30

Trong ví dụ trên, bằng cách sử dụng hàm Max, bạn có thể lấy ra được giá trị có số lớn nhất của cột JobCategoryID trong bảng tblJobCategories

như sau:

select Max(JobCategoryID) +1 from thlJobCategories

Chú ý: Chúng ta có lấy giá trị của cột trong bảng dữ liệu theo hình vừa trình bày ở trên khi bảng đữ liệu chứa số mẩu tin có hạn Trong trường hợp bảng dữ liệu có số lượng mẩu tin lớn, chúng ta nên cho phép cột

JobCategories 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)

if (!IsPostBack)

CreateNewID();

else

EditData();

}

Mỗi khi người sử dụng nhấn nút New hay lần đầu tiên gọi đến trang đobCategory.aspx thì mã số mới tạo ra như hình 17-17

Add New Job Category

CategoryID:|5

Hinh 17-17; Mé mdi

Để 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)

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í đụ

17-9

void EáitDarca (string itemTd)

{

/‡ Trường hợp cho phép cập nhật dữ liệu

btnSave.Text = "Update";

literalHeader.Text = "Update Job Category"; if(itemId != null)

{

/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 =

Trang 32

+" where JobCategorylID='"+ itemId + "'"; sqiCommand Connection = sqlConnection; sqlCommand.CommandType =

CommandType Text;

}{ Khai bdo déi tugng sqlDataReader

SqlDataReader sqlDataReader = sqlCommand ExecuteReader (}; if (sql DataReader.Read()) { txtiID.Text = itemId; txtName.Text = Convert ToString(sqlDataReader[1]); } sqicommand.Dispose(); sqlConnection.Close(); }

catch (Exception ex)

1iteralError.Text += "Failed: " + ex.Message; } sqlConnection.Dispose(); } }

Khi thực thi chương trình, danh sách loại phịng ban trình bày như hình 17-18

#2 Untitled Page - Windows Internet Explorer PGES)

oe- | hetp:fflocalhost; 1035) 48 (2) Gouge

fe] JobCategoryID JobCategoryName | | 1 Accounting 2 Software Development

Quaility Control and Test

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(); sqlConnection.ConnectionString = connectionString;

try

{ -

LỊ Khai báo mở kết nối cơ sở dữ liệu

sglConnection Open () ;

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 34

sqlCommand.CommandText = “Update tblJobCategories" + "set JobCategoryName=@Name"+ "where JobCategoryID=@ID";

11 Khai báo tham số

AddParameters (sqlCommand, new string[2]{"@ID","@Name"}, new string[2]{txtID.Text,txtName.Text}); sqlCommand.Connection = sqlConnection; sqlCommand.CommandType = CommandType Text; 11 Thực thị phát biểu SQL dạng Insert bằng +1 phương thúc ExecuteNonQuery

if (sqlCommand Execut eNonQuery () >0) if (ptnSave.Text=="Save")

{

literalError.Text =

"New record has been inserted."; /! Tạo mã mới bằng phuong thitc CreateNewID CreateNewID();

}

else

{

literalError.Text =

"Record has been updated.";

Response.Redirect ("JobCategories.aspx");

} }

sq1Conmand, Dispose () ;

sqiConnection.Close();

catch (Exception ex)

literalError.Text =

"<br>Failed: " + ex.Message;

}

sqlConnection.Dispose()};

Trang 35

Lưu ý: Bạn cần khai báo đoạn chương trình trong biến cố Click của nút New như ví dụ 17-11

protected void btnNew_Click(object sender, EventArgs e)

{

CreateNewID();

2.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:

<tblJobCategories JobCategoryID="1" JobCategoryNames"Accounting"/>

<tb17obCategories JobCategoryID="2"

JobCategoryName="Software Development "/> <tblJobCategories JobCategoryID="3"

JobCategoryName="Quaility Control and Test"/> <tblJobCategories JobCategoryID="4"

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

du 17-12

Protected void Page_Load (object sender, EventArgs e)

string connectionString =

Trang 36

Sqicommand sqiCommand;

sqiConnection = new SqlConnection(); sqlConnection.ConnectionString = connectionString;

try

{

sqiConnection.Open();

sqlCommand = new SqlCommand()};

11 Khai báo phát biéu SQL tra vé dit ligu dinh dang XML

sqlCommand.CommandText =

"select * from tbluobCategories"

+" for XML Auto ";

sqlCcommand.Connection = sqlConnection; sqlCommand.CommandType =

CommandType.Text;

// Khai bdo đối tượng XmilReader 0à gọi 11 phương thức ExecuteXmiReader XmlReader xmlReader = sqlCommand ExecutexmlReader (); Literall.Text=""; while (xmlReader.Read({}) {

Literall.Text +=Convert ToString ( xmiReader.GetAttribute(

"JobCategoryName")) +"<br>";

}

sqlCommand.Dispose(); sqlConnection.Close();

catch (Exception ex)

Literall.Text += "Failed:" + ex.Message;

sqlConnection.Dispose();

}

Khi thực thị chương trình, bạn có thể tìm thấy danh sách tên phòng ban được trình bày như hình 17-20

Trang 37

Z2 Untitled Page - Windows Internet Explo a le

Ge) ~ Elmertearon oid) ix)

Accounting Software Development

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();

Trang 38

connectionString;

try

{

sqlconnection.Open();

(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 = sqicommand ExecuteReader ();

1] Néu tén tai mdu tin

if (sq]DataReader HasRows)

{

11 Điền mẩu tin uào đổi tượng GridVieo

Gridviewl.DataSource = sqlDataReader;

GridViewl.DataBind();

11 Khai báo liên kết

CreateLink(Gridviewl,

"JobCategory.aspx",0,1);

}

sqlCommand.Dispose();

sqlConnection.Close();

catch (Exception ex)

{

literalError.Text += "Failed:" + ex.Message;

sqlConnection.Dispose(}; }

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

Trang 39

(=

/ Untitled Page - Windows Internet Explo EEI

JobCategoryID JobCategaryName

Accounting

Software Development Quaility Control and Test Engineering and Technology|

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đ=" +

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í

dụ 17-15

protected void Page_Load(object sender, EventArgs e)

{

+1 Khai bdo vé khdi tao déi tugng SqiConnection Sqiconnection sqiconnection;

sqlconnection = new Sqlconnection();

sqlConnection.ConnectionString =

connectionString;

try

sqlconnection.Open();

/ 1] Khai báo uà khởi tạo đối tượng sqlCommand

8q1Command sq1Command;

sqlCommand = new SqlCommand (); sqlCommand.CommandText =

"select UserID, FirstName+"+ ® + * 4 LastName as FullName, "+

Ngày đăng: 15/04/2015, 19:15

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w