Lập trình web Asp.net với C# - Chương 5: Các điều khiển liên kết cơ sở dữ liệu

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,

pdf73 trang | Chia sẻ: thuychi16 | Lượt xem: 1086 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Lập trình web Asp.net với C# - Chương 5: Các điều khiển liên kết cơ sở dữ liệu, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Giảng Viên: Th.S Phạm Đào Minh Vũ Email: phamdaominhvu@yahoo.com 1 LẬP TRÌNH WEB ASP.NET VỚI C# 161 Chương 5 Các Điều Khiển Liên Kết CSDL Khoa CNTT Trường CĐ CNTT TP.HCM 5.1 Điều khiển kết nối cơ sở dữ liệu 5.2 Điều khiển liên kết cơ sở dữ liệu 162 5.1. Điều khiển kết nối CSDL–Data-Source Control  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, . . . Khoa CNTT Trường CĐ CNTT TP.HCM 163 CSDL MẪU Khoa CNTT Trường CĐ CNTT TP.HCM 164 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 . . . 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 Chọn Configure Data Source  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 Tạo kết nối CSDL mới 166 Khoa CNTT Trường CĐ CNTT TP.HCM  Chọn QTCSDL (Microsoft SQLServer)  Chọn Continue để tiếp tục 167 Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Hệ QT CSDL Khai báo các thông số cho kết nối Chọn Tên Server Chọn thông tin đăng nhập Chọn tên CSDL Kiểm tra kết nối Đồng ý kết nối 168 Khoa CNTT Trường CĐ CNTT TP.HCM Đặt tên cho kết nối Tên kết nối 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 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 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 171 Khoa CNTT Trường CĐ CNTT TP.HCM Đ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ể được gán trực tiếp thông qua đối tượng 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: . . ./SachNXB.aspx?MaNXB=3 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 Khoa CNTT Trường CĐ CNTT TP.HCM 174 Khoa CNTT Trường CĐ CNTT TP.HCM Với các thuộc tính:  HeaderText: Nhãn tiêu đề cột  Text: Nhãn hiện thị trong tất cả các ô  DataTextField: Giá trị từ 1 field chỉ định trong nguồn DL  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} 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 , 175 Khoa CNTT Trường CĐ CNTT TP.HCM 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). Xác định nguồn dữ liệu, sau đó chọn Where để chỉ định điều kiện 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 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 Khoa CNTT Trường CĐ CNTT TP.HCM Thi hành xem kết quả 179 Khoa CNTT Trường CĐ CNTT TP.HCM Đ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: ~/Lietkesach.aspx (Chính trang thiết kế) Tạo SqlDataSource với nguồn dữ liệu: 180 Khoa CNTT Trường CĐ CNTT TP.HCM Tạo SqlDataSource với nguồn dữ liệu như sau: 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ố 182 Khoa CNTT Trường CĐ CNTT TP.HCM Điều khiển SQL DataSource và tham số là các Controls Có thể khai báo tham số trong điều khiển 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 183 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện Thiết kế Dropdownlist (ddlChude) từ Table Chude Đặt thuộc tính ID: ddlChude DataSourceID: SqlDataSource1 DataTextField: TenCD (Field hiện thị) AutoPostBack: True DataValuefield: MaCD (Field để truyền tham số) 184 Khoa CNTT Trường CĐ CNTT TP.HCM GridView (GridView1) Với nguồn dữ liệu từ Table Sach Và tham số điều kiện (Where) 185 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ố (Control)  ControlID: Tên tham số đã truyền  Chọn Add để chấp nhận thêm tham số 186 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 Select * From sach Where Dongia Between @Giatu and @Giaden 187 Khoa CNTT Trường CĐ CNTT TP.HCM Khi cấu hình cho điều khiển SQLDataSource Chọn loại nguồn dữ liệu là từ Procedure 188 Khoa CNTT Trường CĐ CNTT TP.HCM Chọn tên Procedure 189 Khoa CNTT Trường CĐ CNTT TP.HCM Xác định giá trị cho các tham số của Procedure 190 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. Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Configure Data Source . . .: Để thực hiện kết nối 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 192 5.1.3 Điều khiển XMLDataSource  Đ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). Khoa CNTT Trường CĐ CNTT TP.HCM <Sinhvien MaSV="SV01" HotenSV="Trần Văn Nam" Diachi="123 Trần Hưng Đạo, Q5" Email="nam@gmail.com" /> <Sinhvien MaSV="SV02" HotenSV="Nguyễn Thị Lý" Diachi="45 Hai Bà Trưng, Q1" Email="lythi@yahoo.com" /> <Sinhvien MaSV="SV03" HotenSV="Nguyễn Thị Bình" Diachi="31 Lý Thường Kiệt,TB" Email="kiet@gmail.com"/> 193 Tạo XMLDataSource từ Toolbox. Khoa CNTT Trường CĐ CNTT TP.HCM Chọn Configure Data Source . . .: Để thực hiện kết nối 194 Chọn tập tin XML.  Chọn OK để hoàn tất Khoa CNTT Trường CĐ CNTT TP.HCM 195 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 Khoa CNTT Trường CĐ CNTT TP.HCM 196 5.2.1 Gridview 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 Khoa CNTT Trường CĐ CNTT TP.HCM  Tạo GridView vào trang Kéo Control GridView vào trang 198 Khoa CNTT Trường CĐ CNTT TP.HCM  Định dạng tự động Chọn những mẫu định dạng có sẳn Gridview bằng cách Chọn Auto Format từ khung Gridview Task 199 Khoa CNTT Trường CĐ CNTT TP.HCM  Kết nối nguồn dữ liệu Thực hiện kết nối nguồn dữ liệu với cơ sở dữ liệu SQLServer, Access, XML. . Tại mục Choose Data Source: New Data Source (Hoặc chọn Datasource đã được tạo trước đó) Ghi chú: Tạo Datasource như được trình bày trước 200 Khoa CNTT Trường CĐ CNTT TP.HCM Thi hành xem kết quả: 201 Khoa CNTT Trường CĐ CNTT TP.HCM Thêm cột Trong cửa sổ Gridview Task chọn : Add New Column  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 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 203 Khoa CNTT Trường CĐ CNTT TP.HCM AvailableFields: Chọn lọai Field liên kết dữ liệu BoundField: Cột dạng Textbox. Checkbox Field: Cột dạng Checkbox. Hyperlink Field: Cột dạng liên kết. Button Field: Cột dạng nút lệnh 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 TemplateField: Cột do người dùng tự thiết kế. 204 Khoa CNTT Trường CĐ CNTT TP.HCM Convert this Field into a Template Column: Chuyển cột hiện hành thành cột dạng Template Column. BoundColumn properties: Thông tin chi tiết cho các cột HeaderText, Footer Text: Tiêu đề trên/dưới của cột Header Image: Hình hiển thị trên tiêu đề 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.##} {0:dd/MM/yyyy}, {0:hh/mm/ss tt} 205 Khoa CNTT Trường CĐ CNTT TP.HCM  Thiết lập các thuộc tính định dạng lưới Chọn GridView  Properties - ShowHeader/ShowFooter: Hiện / Ẩn Phần đầu và chân của GridView 206 Khoa CNTT Trường CĐ CNTT TP.HCM - HeaderStyle/FooterStyle: Định dạng dòng Header/Footer 207 Khoa CNTT Trường CĐ CNTT TP.HCM - RowStyleAlternatingRowStyle: Định dạng dòng dữ liệu lẽ/chẵn: 208 Khoa CNTT Trường CĐ CNTT TP.HCM - AlowPaging : Phân trang - 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). 209 Khoa CNTT Trường CĐ CNTT TP.HCM - AllowSorting: Sắp xếp (theo thuộc tính DataKeyNames 210 5.2.2 Điều khiển DataList 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) 211 Khoa CNTT Trường CĐ CNTT TP.HCM Một số thuộc tính cần chú ý RepeatDirection: Qui định hướng hiển thị dữ liệu oHorizontal: Hiển thị dữ liệu theo chiều ngang oVertical: Hiển thị dữ liệu theo chiều đứng RepeatColumns: Qui định số cột hiển thị 212 Khoa CNTT Trường CĐ CNTT TP.HCM - 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 - 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 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. 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 tạo phân trang bằng 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. Phân Trang Datalist với CollectionPager 215 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện 1. Download file CollectionPager.dll, chép vào thư mục BIN của website 2. Đưa control này vào toolbox RightClick vào công cụ Standard của toolbox--->chọn Choose Item 216 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện 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 Chọn Browse đên thư mục chon control này--->bấm ok nhé 217 Khoa CNTT Trường CĐ CNTT TP.HCM Thực hiện 4. Kéo thả CollectionPager vào trang và tùy chỉnh thông số 5. Viết code trong sự kiện Page_Load của trang 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; } 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.  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 ) 219 5.2.3 Điều khiển Repeater 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. 220 Khoa CNTT Trường CĐ CNTT TP.HCM 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. : 221 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 Bước 3:. Chuyển trang Web qua dạng code HTM bổ sung các tag sau: 222 Khoa CNTT Trường CĐ CNTT TP.HCM Mã CĐ Tên CĐ 223 5.2.4 Detailview & FormView 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. 224 Detailview Khoa CNTT Trường CĐ CNTT TP.HCM Hiển thị dữ liệu với DetailView DetailView được đưa ra hiển thị như 1 bảng()trong HTML để hiển thị dữ liệu 1 bản ghi. Ví dụ: Trang XemthongtinKH.aspx 225 Khoa CNTT Trường CĐ CNTT TP.HCM Sử dụng Fields với điều khiển DetailView DetailView hỗ trợ tất cả các Field như GridView : BoundField,CheckBoxField,CommandField,ButtonField, HyperLinkField, ImageField, TemplateField 226 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý phân trang với điều khiển DetailView Để tạo phân trang chỉ định thuộc tính AllowPaging=”true” cho điều khiển DetailView. Với các thuộc tính định dạng thuộc nhóm: Pagersettings 227 Khoa CNTT Trường CĐ CNTT TP.HCM Minh họa: Trong ví dụ liên kết dữ liệu với Table Khachhang đưa vào 5 BoundField và một CheckBoxField, điền dữ liệu vào với thuộc tính DataField và thiết đặt tiêu dề (HeaderText). Tạo phân trang và trình bày tại góc trên bên phải. 228 Formview Khoa CNTT Trường CĐ CNTT TP.HCM Hiển thị dữ liệu với FormView FormView dùng để hiển thị dữ liệu với các điều khiển tùy biến cho dữ liệu một bản ghi. Ví dụ: Trang XemthongtinNXB.aspx 229 Khoa CNTT Trường CĐ CNTT TP.HCM Trình bày dữ liệu sử dụng Edit Template Tạo FormView vào trang và liên kết dữ liệu Tại cửa sổ thiết kế chọn Edit Tempalte từ cửa sổ FormView Task 230 Khoa CNTT Trường CĐ CNTT TP.HCM Thiết kế trình bày với các Control điều khiển tương tự như khi thiết kế DataList với các điều khiển tùy biến 231 Khoa CNTT Trường CĐ CNTT TP.HCM Xử lý phân trang với điều khiển FormView Để tạo phân trang chỉ định thuộc tính AllowPaging=”true” cho điều khiển Form. Với các thuộc tính định dạng thuộc nhóm: Pagersettings 232 Khoa CNTT Trường CĐ CNTT TP.HCM Minh họa: Trong ví dụ liên kết dữ liệu với Table NhaXuatBan đưa vào 4 Label, điền dữ liệu vào với thuộc tính Text cho các File tương tứng, thiết đặt tiêu đề(HeaderText). Tạo phân trang và trình bày tại phía dưới giữa trang