LẬP TRÌNH WEB ASP.NET VỚI C#
Giảng Viên: Th.S Phạm Đào Minh Vũ Email: phamdaominhvu@yahoo.com
1
Chương 5 Các Điều Khiển Liên Kết CSDL
5.2 Điều khiển liên kết cơ sở dữ liệu
161
Khoa CNTT Trường CĐ CNTT TP.HCM
5.1 Điều khiển kết nối cơ sở dữ liệu
5.1. Điều khiển kết nối CSDL–Data-Source Control
162 162
Khoa CNTT Trường CĐ CNTT TP.HCM
Là các điều khiển dùng để chứa nguồn dữ liệu được rút trích từ các hệ QT CSDL như: Access, SQLServer, XML, Ocracle . . . Có các điều khiển Data-Source sau: SQLDataSource, Access Data Source, XML Data Source, . . .
CSDL MẪU
163 163
Khoa CNTT Trường CĐ CNTT TP.HCM
5.1.1 Điều khiển SQLDataSource
Dùng để kết nối CSDL trong các hệ quản trị CSDL SQLServer, Ocracle Server, . . . Chọn đối tượng CSDL như Table, View, Procedure hay câu lệnh SQL và khai báo điều kiện lọc (Where) với nhiều cách như: Giá trị định sẳn, đối tượng Session, Request.Form, Request.QueryString . . .
Chọn Configure Data Source
164 164
Khoa CNTT Trường CĐ CNTT TP.HCM
Tạo kết nối Kéo điều khiển SQLDataSource từ Toolbox vào trang
Tạo kết nối CSDL mới
165 165
Khoa CNTT Trường CĐ CNTT TP.HCM
© Dương Thành Phết-www.thayphet.net
Nếu trước đó đã tạo kết nối thì chọn kết nối đã có. Ngược lại để tạo mới kết nối thì chọn New Connection
Chọn QTCSDL (Microsoft SQLServer) Chọn Continue để tiếp tục
166 166
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn Hệ QT CSDL
Chọn Tên Server
Chọn thông tin đăng nhập
Chọn tên CSDL
Đồng ý kết nối
Kiểm tra kết nối
167 167
Khoa CNTT Trường CĐ CNTT TP.HCM
Khai báo các thông số cho kết nối
Tên kết nối
168 168
Khoa CNTT Trường CĐ CNTT TP.HCM
Đặt tên cho kết nối
Xác định nguồn dữ liệu Từ câu lệnh SQL hay Từ Table, View
Xác định điều kiện
Chỉ định sắp xếp
Các lệnh thê, xoá, sửa
169 169
Khoa CNTT Trường CĐ CNTT TP.HCM
Xác định nguồn dữ liệu từ Table, View hay câu lệnh SQL có thể chỉ định điều kiện lọc dữ liệu, sắp xếp hay các chỉ định vcho xử lý thêm, xoá, sửa
170 170
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn Test Query để kiểm tra kết quả nguồn dữ liệu. Chọn Finish để hòan thành
Điều khiển SQL DataSource và tham số Request.QueryString
Để lọc dữ liệu theo điều kiện thì giá trị tham số có thể tượng được gán Request.Querystring (Truyền tham số qua liên kết)
Khi click vào liên kết trang có địa chỉ kèm theo tham số dạng: http://localhost:49222/ . . ./SachNXB.aspx?MaNXB=3
171 171
Khoa CNTT Trường CĐ CNTT TP.HCM
thông qua đối trực tiếp
172 172
Khoa CNTT Trường CĐ CNTT TP.HCM
Thực hiện: Tạo trang NhaXB.aspx là danh mục nhà xuất bản Chọn Edit Column từ GiridView Task
173 173
Khoa CNTT Trường CĐ CNTT TP.HCM
Với các thuộc tính:
HeaderText: Nhãn tiêu đề cột
DataTextField: Giá trị từ 1 field chỉ định trong nguồn DL
Text: Nhãn hiện thị trong tất cả các ô
DataNavigateUrlFields: Danh mục tên các tham số ghi cách nhau bởi dấu “,”
DataNavigateUrlFormatting: Địa chỉ trang liên kết kèm tham số dạng: ~/SachNXB.aspx?MaNXB={0}
174 174
Khoa CNTT Trường CĐ CNTT TP.HCM
Giá trị tham số ghi dưới dạng chỉ số các tham số được khai báo trong DataNavigateUrlFields bắt đầu là 0 và cách nhau dấu ,
Tạo trang hiện thị dữ liệu với nguồn dữ liệu có tham số qua liên kết (Request.QueryString).
175 175
Khoa CNTT Trường CĐ CNTT TP.HCM
Xác định nguồn dữ liệu, sau đó chọn Where để chỉ định điều kiện
176 176
Khoa CNTT Trường CĐ CNTT TP.HCM
Columns: Tên cột làm điều kiện Operator: Toán tử so sánh Source: Loại tham số (QueryString) QueryString field: Tên tham số đã truyền Chọn Add để chấp nhận thêm tham số
177 177
Khoa CNTT Trường CĐ CNTT TP.HCM
Columns: Tên cột làm điều kiện Operator: Toán tử so sánh Source: Loại tham số (QueryString) QueryString field: Tên tham số đã truyền Chọn Add để chấp nhận thêm tham số
178 178
Khoa CNTT Trường CĐ CNTT TP.HCM
Thi hành xem kết quả
Điều khiển SQL DataSource và tham số Request.Form
Để lọc dữ liệu trong nguồn dữ liệu theo điều kiện với giá trị tham số là giá trị trên form. Thực hiện: Tạo trang Lietkesach.aspx gồm:
1 Textbox thuộc tính ID: MaNXB 1 Button thuộc tính PostbackURL:
Tạo SqlDataSource với nguồn dữ liệu:
179 179
Khoa CNTT Trường CĐ CNTT TP.HCM
~/Lietkesach.aspx (Chính trang thiết kế)
180 180
Khoa CNTT Trường CĐ CNTT TP.HCM
Tạo SqlDataSource với nguồn dữ liệu như sau:
181 181
Khoa CNTT Trường CĐ CNTT TP.HCM
Columns: Tên cột làm điều kiện Operator: Toán tử so sánh Source: Loại tham số (Form) Form field: Tên tham số đã truyền (Tên Textbox) Chọn Add để chấp nhận thêm tham số
Điều khiển SQL DataSource và tham số là các Controls
thể khai báo
182 182
Khoa CNTT Trường CĐ CNTT TP.HCM
Có trong điều khiển tham số SqlDataSource mà giá trị được lấy từ điều khiển trình chủ. Ví dụ thiết kế trang SachtheoCD.aspx thực hiện liệt kê danh mục sách có chủ đề được chọn từ điều khiển DropdownList
Thực hiện
Thiết kế Dropdownlist (ddlChude) từ Table Chude
Đặt thuộc tính
183 183
Khoa CNTT Trường CĐ CNTT TP.HCM
ID: ddlChude DataSourceID: SqlDataSource1 DataTextField: TenCD (Field hiện thị) AutoPostBack: True DataValuefield: MaCD (Field để truyền tham số)
GridView (GridView1) Với nguồn dữ liệu từ Table Sach
184 184
Khoa CNTT Trường CĐ CNTT TP.HCM
Và tham số điều kiện (Where)
Columns: Tên cột làm điều kiện Operator: Toán tử so sánh Source: Loại tham số (Control) ControlID: Tên tham số đã truyền Chọn Add để chấp nhận thêm tham số
185 185
Khoa CNTT Trường CĐ CNTT TP.HCM
Điều khiển SQL DataSource và Procedure
Ta có thể sử dụng điều khiển kết nối CSDL SqlDatasource để truy cập gọi Stored Procedure trong CSDL SQL Server. Ví dụ: Ta có Procedure Sachtheogia liệt kê các quyển sách với điều kiện Giá từ 2 tham số là Giatu và Giaden
Create Proc Sachtheogia @Giatu int, @Giaden int as
186 186
Khoa CNTT Trường CĐ CNTT TP.HCM
Select * From sach Where Dongia Between @Giatu and @Giaden
Khi cấu hình cho điều khiển SQLDataSource
187 187
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn loại nguồn dữ liệu là từ Procedure
188 188
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn tên Procedure
189 189
Khoa CNTT Trường CĐ CNTT TP.HCM
Xác định giá trị cho các tham số của Procedure
5.1.2 Điều khiển Access DataSource
Dùng để kết nối với cơ sở dữ liệu Access MDB). Thực hiện Tạo AccessDataSource từ thanh Toolbox.
190 190
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn Configure Data Source . . .: Để thực hiện kết nối
191 191
Khoa CNTT Trường CĐ CNTT TP.HCM
Xác định nguồn dữ liệu và điều kiện tham số như SQLData Source
5.1.3 Điều khiển XMLDataSource
192 192
Khoa CNTT Trường CĐ CNTT TP.HCM
Điều khiển XMLDataSource được sử dụng để kết nối CSDL định dạng XML. Thực hiện: Tạo tập tin XML (DSSinhvien).
Tạo XMLDataSource từ Toolbox.
193 193
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn Configure Data Source . . .: Để thực hiện kết nối
194 194
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn tập tin XML. Chọn OK để hoàn tất
5.2. Điều khiển liên kết cơ sở dữ liệu
5.2.1 Gridview
5.2.2 DataList
5.2.3 Repeater
5.2.4 Detailview & FormView
195 195
Khoa CNTT Trường CĐ CNTT TP.HCM
5.2.1 Gridview
196 196
Khoa CNTT Trường CĐ CNTT TP.HCM
Giới thiệu: GridView là một điều khiển khá linh hoạt và hiệu quả trong việc hiển thị, định dạng và thao tác với dữ liệu. Bên cạnh đó, chúng ta có thể thực hiện sắp xếp dữ liệu, thực hiện phân trang với sự hỗ trợ khá tốt của Visual .Net trong quá trình thiết kế.
197 197
Khoa CNTT Trường CĐ CNTT TP.HCM
Tạo GridView vào trang Kéo Control GridView vào trang
Chọn những mẫu định dạng có sẳn Gridview
198 198
Khoa CNTT Trường CĐ CNTT TP.HCM
Định dạng tự động bằng cách Chọn Auto Format từ khung Gridview Task
Thực hiện kết nối nguồn dữ liệu với cơ sở dữ liệu
Tại mục Choose Data Source: New Data Source
Kết nối nguồn dữ liệu SQLServer, Access, XML. . (Hoặc chọn Datasource đã được tạo trước đó)
199 199
Khoa CNTT Trường CĐ CNTT TP.HCM
Ghi chú: Tạo Datasource như được trình bày trước
200 200
Khoa CNTT Trường CĐ CNTT TP.HCM
Thi hành xem kết quả:
Thêm cột Trong cửa sổ Gridview Task chọn : Add New Column
201 201
Khoa CNTT Trường CĐ CNTT TP.HCM
Chọn Loại field : BoundField Tiêu đề côt : Header Text Tên field dữ liệu: DataField Ok hòan thành
202 202
Khoa CNTT Trường CĐ CNTT TP.HCM
Hiệu chỉnh các cột Trong cửa sổ Gridview Task chọn : Edit Column
BoundField: Cột dạng Textbox.
AvailableFields: Chọn lọai Field liên kết dữ liệu
Checkbox Field: Cột dạng Checkbox.
Button Field: Cột dạng nút lệnh
Hyperlink Field: Cột dạng liên kết.
CommandField: Cột dạng nút lệnh được thiết kế sẵn
Select: Nút lệnh chọn dòng dữ liệu
Edit, Cancel, Update: Các nút cập nhật d.liệu
Delete: Nút lệnh xóa dòng dữ liệu
203 203
Khoa CNTT Trường CĐ CNTT TP.HCM
TemplateField: Cột do người dùng tự thiết kế.
BoundColumn properties: Thông tin chi tiết cho các cột
Header Image: Hình hiển thị trên tiêu đề cột.
HeaderText, Footer Text: Tiêu đề trên/dưới của cột
Sort Expression: Biểu thức sắp xếp của cột.
Visible: Qui định cột có được hiển thị hay không.
DataField: Qui định tên field dữ liệu cần hiển thị.
Data formatting expression: Biểu thức định dạng {0:
Vd: {0:000.00}, {0:0.##}
204 204
Khoa CNTT Trường CĐ CNTT TP.HCM
{0:dd/MM/yyyy}, {0:hh/mm/ss tt} Convert this Field into a Template Column: Chuyển cột hiện hành thành cột dạng Template Column.
Thiết lập các thuộc tính định dạng lưới Chọn GridView Properties
205 205
Khoa CNTT Trường CĐ CNTT TP.HCM
- ShowHeader/ShowFooter: Hiện / Ẩn Phần đầu và chân của GridView
206 206
Khoa CNTT Trường CĐ CNTT TP.HCM
- HeaderStyle/FooterStyle: Định dạng dòng Header/Footer
207 207
Khoa CNTT Trường CĐ CNTT TP.HCM
- RowStyleAlternatingRowStyle: Định dạng dòng dữ liệu lẽ/chẵn:
- Page size: Qui định số dòng/trang - Possition: Qui định vị trí hiển thị của bộ nút di chuyển (top, bottom, top&bottom). - Mode: Qui định hình thức hiển thị của bộ nút di chuyển (kiểu số, kiểu ký hiệu).
208 208
Khoa CNTT Trường CĐ CNTT TP.HCM
- AlowPaging : Phân trang
209 209
Khoa CNTT Trường CĐ CNTT TP.HCM
- AllowSorting: Sắp xếp (theo thuộc tính DataKeyNames
5.2.2 Điều khiển DataList
210 210
Khoa CNTT Trường CĐ CNTT TP.HCM
Giới thiệu: Như điều khiển Gridview, điều khiển DataList được sử dụng để hiển thị dữ liệu. Tuy nhiên, đối với DataList, chúng ta phải tự thiết kế hình thức hiển thị dữ liệu (giống như Template Column của GridView)
Một số thuộc tính cần chú ý
oHorizontal: Hiển thị dữ liệu theo chiều ngang
RepeatDirection: Qui định hướng hiển thị dữ liệu
oVertical: Hiển thị dữ liệu theo chiều đứng
211 211
Khoa CNTT Trường CĐ CNTT TP.HCM
RepeatColumns: Qui định số cột hiển thị
- Thiết kế hình thức hiển thị cho DataList cũng tương tự như thiết kế cho cột Template Column của GridView
212 212
Khoa CNTT Trường CĐ CNTT TP.HCM
- Chọn Edit Template từ thực đơn ngữ cảnh để thực hiện thiết kế hình thức hiển thị cho DataList.
213 213
Khoa CNTT Trường CĐ CNTT TP.HCM
Ghi chú: Để công việc thiết kế được dễ dàng, thực hiện thiết kế ở bên ngoài điều khiển DataList. Sử dụng Table để định vị trí các điều khiển. Sau khi thiết kế hoàn tất, kéo kết quả vào vị trí hiển thị trong DataList.
Phân Trang Datalist với CollectionPager
trang bằng tạo phân
214 214
Khoa CNTT Trường CĐ CNTT TP.HCM
Datalist không hỗ trợ phân trang như Gridview, vì vậy cần phải tay. Công cụ CollectionPager là 1 control cho phép tạo phân trang mà không cần viết nhiều code.
Thực hiện
1. Download file CollectionPager.dll, chép vào thư mục BIN của website
215 215
Khoa CNTT Trường CĐ CNTT TP.HCM
2. Đưa control này vào toolbox RightClick vào công cụ Standard của toolbox--->chọn Choose Item
Thực hiện
Chọn Browse đên thư mục chon control này--->bấm ok nhé
216 216
Khoa CNTT Trường CĐ CNTT TP.HCM
3. Browse đến tập tin CollectionPager.dll trong thư mục BIN của website, công cụ CollectionPager sẽ xuất hiện như hình
Thực hiện
4. Kéo thả CollectionPager vào trang và tùy chỉnh thông số
protected void Page_Load(object sender, EventArgs e) { //lấy dữ liệu từ SQLDatasource DataView dv = (DataView)SqlDataSource1.Select(DataSourceSelectArguments.Empty); CollectionPager1.DataSource = dv;//chỉ định datasource cho CollectionPager //Chỉ định đối tượng Datalist mà CollectionPager sẽ phân trang CollectionPager1.BindToControl = DataList1; //gán dữ liệu đã phân trang cho Datalist DataList1.DataSource = CollectionPager1.DataSourcePaged; }
217 217
Khoa CNTT Trường CĐ CNTT TP.HCM
5. Viết code trong sự kiện Page_Load của trang
Ngoài việc sử dụng CollectionPager, việc phân trang còn có thể thực hiện bằng việc viết mã (sinh viên tự tìm hiểu thêm )
218 218
Khoa CNTT Trường CĐ CNTT TP.HCM
CollectionPager không chỉ hoạt động trên Datalist mà còn hoạt động với các Điều khiển hiển thị dữ liệu khác như Repeater, …hoặc bất kỳ đối tượng nào cần phân trang.
5.2.3 Điều khiển Repeater
219 219
Khoa CNTT Trường CĐ CNTT TP.HCM
Giới thiệu: Như DataList & DataGrid, điều khiển Repeater dùng để hiển thị dữ liệu. Tuy nhiên phải tự thiết kế hình thức hiển thị thông qua các tag HTML.
Nội dung hiển thị cho tiêu đề
Nội dung hiển thị cho các mục dữ liệu dòng lẻ.
Nội dung hiển thị cho các mục dữ liệu chẳn.
Nội dung hiển thị giữa các dòng dữ liệu
Nội dung hiển thị cho tiêu đề dưới.
220 220
Khoa CNTT Trường CĐ CNTT TP.HCM
Ví dụ: Bước 1: Tạo mới điều khiển Repeater: rptChudesach vào trang Web
Bước 2: Kết nối và tạo nguồn dữ liệu cho điều khiển từ Table Chude với các cột: MaCD, Tenchude
221 221
Khoa CNTT Trường CĐ CNTT TP.HCM
Bước 3:. Chuyển trang Web qua dạng code HTM bổ sung các tag sau:
Mã CĐ
Tên CĐ
<%# Eval("MaCd")%>
<%# Eval("Tenchude")%>
<%# Eval("MaCD")%>
<%# Eval("TenChude")%>
222 222
Khoa CNTT Trường CĐ CNTT TP.HCM
5.2.4 Detailview & FormView
223 223
Khoa CNTT Trường CĐ CNTT TP.HCM
Giới thiệu: Hai điều khiển này cho phép làm việc với một trường dữ liệu đơn tại mỗi thời điểm. Thực hiện được chức năng xem, thay đổi, thêm mới hay xoá, di chuyển sang trang tiếp theo hay quay lại trang trước.
Detailview
DetailView được đưa ra hiển
224 224
Khoa CNTT Trường CĐ CNTT TP.HCM
Hiển thị dữ liệu với DetailView thị như 1 bảng(

