ðiều khiển liên kết dữ liệu http://www.thayphet.net Written by: Dương Thành Phết... http://www.thayphet.net Written by: Dương Thành Phết Tạo kết nối Kéo ñiều khiển SQLDataSource từ Tollb
Trang 1Chương 5 Các ðiều Khiển Liên Kết CSDL
1 ðiều khiển kết nối cơ sở dữ liệu
2 ðiều khiển liên kết dữ liệu
http://www.thayphet.net Written by: Dương Thành Phết
Trang 21 ð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,
Trang 31.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
http://www.thayphet.net Written by: Dương Thành Phết
Tạo kết nối
Kéo ñiều khiển SQLDataSource từ Tollbox vào trang
Chọn Conigure Data Source
Trang 5http://www.thayphet.net Written by: Dương Thành Phết
Chọn QTCSDL (Microsoft SQLServer)
Chọn Continue ñể tiếp tục
Trang 7http://www.thayphet.net Written by: Dương Thành Phết
ðặt tên cho kết nối
Tên kết nối
Trang 8Xá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
Trang 9http://www.thayphet.net Written by: Dương Thành Phết
Chọn Test Query ñể kiểm tra kết quả nguồn dữ liệu
Chọn Finish ñể hòan thành
Trang 10ð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:
http://localhost:49222/ /SachNXB.aspx?MaNXB=3
Trang 11http://www.thayphet.net Written by: Dương Thành Phết
Thực hiện:
Tạo trang NhaXB.aspx là danh mục nhà xuất bảnChọn Edit Column từ GiridView Task
Trang 1212
Trang 13http://www.thayphet.net Written by: Dương Thành Phết
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 ô
DatTextField: 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 ,
Trang 14Tạ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
Trang 15http://www.thayphet.net Written by: Dương Thành Phết
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ố
Trang 16Columns: 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ố
Trang 17http://www.thayphet.net Written by: Dương Thành Phết
Thi hành xem kết quả
Trang 18ð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:
Trang 19http://www.thayphet.net Written by: Dương Thành Phết
Tạo SqlDataSource với nguồn dữ liệu như sau:
Trang 20Columns: 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ố
Trang 21http://www.thayphet.net Written by: Dương Thành Phết
ðiều khiển SQL DataSource và tham số là các Controls
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
Trang 23http://www.thayphet.net Written by: Dương Thành Phết
GridView (GridView1) Với nguồn dữ liệu từ Table Sach
Và tham số ñiều kiện (Where)
Trang 24Columns: 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ố
Trang 25http://www.thayphet.net Written by: Dương Thành Phết
ð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
quyển sách với ñiều kiện Giá từ 2 tham số là Giatu
và Giaden
@Giatu int, @Giaden Intas
Select * From sach Where Dongia Between @Giatu and @Giaden
Trang 26Khi cấu hình cho ñiều khiển SQLDataSource
Chọn loại nguồn dữ liệu là từ Procedure
Trang 27http://www.thayphet.net Written by: Dương Thành Phết
Chọn tên Procedure
Trang 28Xác ñịnh giá trị cho các tham số của Procedure
Trang 291.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.
http://www.thayphet.net Written by: Dương Thành Phết
Chọn Configure Data Source : ðể thực hiện kết nối
Trang 30Xác ñịnh nguồn dữ liệu và ñiều kiện tham số như SQLData Source
Trang 311.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).
http://www.thayphet.net Written by: Dương Thành Phết
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< DSSinhvien >
< 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 " />
</ DSSinhvien >
Trang 32Tạo XMLDataSource từ Toolbox.
Chọn Configure Data Source : ðể thực hiện kết nối
Trang 33Chọn tập tin XML.
Chọn OK ñể hoàn tất
http://www.thayphet.net Written by: Dương Thành Phết
Trang 352.1 Gridview
http://www.thayphet.net Written by: Dương Thành Phết
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ế
Trang 36Tạo GridView vào trang
Kéo Control GridView vào trang
Trang 37http://www.thayphet.net Written by: Dương Thành Phết
ðị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
Trang 38Kế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
(Hoặc chọn Datasource ñã ñược tạo trước ñó)
Ghi chú: Tạo Datasource như ñược trình bày trước
Trang 39http://www.thayphet.net Written by: Dương Thành Phết
Thi hành xem kết quả:
Trang 40Thê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
Trang 41http://www.thayphet.net Written by: Dương Thành Phết
Hiệu chỉnh các cột
Trong cửa sổ Gridview Task chọn : Edit Column
Trang 42AvailableFields: 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ệnhCommandField: 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ệuEdit, 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ế
Trang 43http://www.thayphet.net Written by: Dương Thành Phết
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ộtHeader 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:<chuỗi ñịnh dạng>}
Vd: {0:000.00}, {0:0.##}
{0:dd/MM/yyyy}, {0:hh/mm/ss tt}
Trang 45http://www.thayphet.net Written by: Dương Thành Phết
- HeaderStyle/FooterStyle: ðịnh dạng dòng Header/Footer
Trang 46- RowStyleAlternatingRowStyle: ðịnh dạng dòng dữ liệu lẽ/chẵn:
Trang 47http://www.thayphet.net Written by: Dương Thành Phết
- 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
Mode: Qui ñịnh hình thức hiển thị của bộ nút di chuyển
Trang 48- AllowSorting: Sắp xếp
Trang 492.2 ðiều khiển DataList
http://www.thayphet.net Written by: Dương Thành Phết
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)
Trang 50Một số thuộc tính cần chú ý
RepeatDirection: Qui ñịnh hướng hiển thị dữ liệu
RepeatColumns: Qui ñịnh số cột hiển thị
Trang 51http://www.thayphet.net Written by: Dương Thành Phết
- 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
Trang 52Ghi 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
Trang 532.3 ðiều khiển Repeater
http://www.thayphet.net Written by: Dương Thành Phết
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
Trang 55http://www.thayphet.net Written by: Dương Thành Phết
Ví dụ:
vào trang Web
Table Chude với các cột: MaCD, Tenchude
sung các tag sau:
Trang 572.4 Detailview & FormView
http://www.thayphet.net Written by: Dương Thành Phết
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
Trang 582.4.1 Detailview
Hiển thị dữ liệu với DetailView
DetailView ñược ñưa ra hiển thị như 1 bảng(<Table>)trong HTML ñể hiển thị dữ liệu 1 bản ghi
Ví dụ: Trang XemthongtinKH.aspx
Trang 59http://www.thayphet.net Written by: Dương Thành Phết
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
Trang 60Xử lý phân trang với ñiều khiển DetailView
AllowPaging=”true” cho ñiều khiển DetailView Với các thuộc tính ñịnh dạng thuộc nhóm: Pagersettings
Trang 61http://www.thayphet.net Written by: Dương Thành Phết
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
Trang 622.4.1 Formview
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
Trang 63http://www.thayphet.net Written by: Dương Thành Phết
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
Trang 64Thiế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
Trang 65http://www.thayphet.net Written by: Dương Thành Phết
Xử lý phân trang với ñiều khiển FormView
AllowPaging=”true” cho ñiều khiển Form Với các thuộc tính ñịnh dạng thuộc nhóm: Pagersettings
Trang 66Minh họa:
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