Giới thiệu Điều khiển SqlDataSource dung để kết nối CSDL nếu dữ liệu của ứng dụng được lưu trữ trong các hệ quản trị CSDL như: SQLServer, Ocracle Server,.. Chọn đối tượng CSDL như Table,
Trang 1Chương 3
KẾT NỐI CƠ SỞ DỮ LIỆU TRONG ASP.NET
Sử dụng các thành phần kết nối CSDL như : SQLDataSource, Access Data Source, XML Data Source,
Cách truyền tham số vào các điều khiển
I SQL DATA SOURCE
1 Giới thiệu
Điều khiển SqlDataSource dung để kết nối CSDL nếu dữ liệu của ứng dụng được lưu trữ trong các hệ quản trị CSDL như: SQLServer, Ocracle Server,
Chọn đối tượng CSDL như Table, View hay câu lệnh truy vấn SQL và có thể khai báo điều kiện lọc dữ liệu (Where) với nhiều cách như: giá trị định sẳn, đối tượng Session, Request.form, Request.QueryString
2 Kết nối và trình bày CSDL
a Tạo kết nối
Tạo trang aspx và kéo điều khiển SQLDataSource từ ngăn data trên thanh Tollbox
Chọn tiếp vào Conigure Data Source
Nếu trước đó đã có tạo kết nối CSDL thì chọn vào Combobox để chọn CSDL đã kết nối
Để tạo mới kết nối CSDL thì chọn New Connection
Trang 2
Tạo kết nối CSDL mới
Trang 3Khai báo các thông số cho SQLServer và chọn CSDL cần kết nối
Chọn Next
Chọn Next
Xác định nguồn dữ liệu từ Table, Quyery hay câu lệnh truy vấn có thể chỉ định điều kiện lọc dữ liệu và sắp xếp
Chỉ định các cột dữ liệu
Kiểm tra kết quả kết nối
Trang 4Khai báo điều kiện mệnh đề Where (Nếu có)
Khai báo sắp xếp (Nếu cần)
Chọn Test Query để kiểm tra kết quả nguồn dữ liệu Chọn Finish
để hòan thành
Trang 5Phần mã của giao tiếp này có được như sau:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ConnectionStrings:QLBansachConnectionString
%>"
SelectCommand="SELECT [MaTG], [TenTG], [DiachiTG], [DienthoaiTG] FROM [TACGIA] ORDER BY [TenTG]">
</asp:SqlDataSource>
b Trình bày dữ liệu lên trang
Để trình bày dữ liệu trên Webform sau khi thực hiện kết nối CSDL ta sẽ sử dụng trình điều khiển lưới Gridview
Tạo Gridview vào trang từ ngăn Data trên Thanh Toolbox
Chọn Choose DataSource là: SqldataSource1 đã tạo
Ghi chú:
Chọn mẫu định dạng lưới: Auto Format
Để tạo phân trang dữ liệu: Đánh dấu chọn : Enable Paging
Để cho phép sắp xếp khi click vào tiếu đề cột đánh dấu chọn: Enable Sorting
Trang 6Thi hành tarng DSTacgia.aspx:
Click tiêu đề lưới để kiểm tra tính sắp xếp
Click số thứ tự trang (Cuối lưới) để kiểm tra tính phân trang
3 Điều khiển SQL Data Source và tham số.
a Điều khiển SQL DataSource và Request.QueryString
Để lọc dữ liệu trong nguồn 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 trang.)
Tạo trang cho phép truyền tham số qua liên kết
Khi click vào liên kết trang liên kết có địa chỉ kèm theo tham số dạng như sau:
http://localhost:49222/KetnoiCSDL/SachNXB.aspx?MaNXB=3
Thực hiện:
o Tạo trang NhaXB.aspx với nguồn dữ liệu là tòan bộ danh mục nhà xúât bản được trình bày trên lưới GridView như sau
Trang 7o Điều chỉnh bổ sung và lưới 1 cột liên kết
Chọn Edit Column từ GiridView Task
Thực hiện bổ sung 1 cột dạng HyperLinkField
Với các thuộc tính:
HeaderText: Nhãn tiêu đề cột
Text: Nhãn hiện thị trong cột (Giống nhau trên tất cả các ô) Hoặc
DatTextField: Dùng giá trị từ 1 field chỉ định trong nguồn dữ liệu
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}
Trong đó giá trị tham số ghi dưới dạng chỉ số các tham số được khai báo trong thuộc tính DataNavigateUrlFields bắt đầu là 0 và cách nhau là dấu ,
Trang 8Thi hành:
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)
Chỉ định nguồn dữ liệu
Trang 9Khai báo điều kiện (Where) với tham số là QueryString Đặt tên QueryStringField là: MaNXB Add
Thi hành :
Trang NhaXB.aspx
Click vào liên kết Xem sách của 1 nhà xuất bản (VD: Với MaNXB là 2) Các sách của Nhà xuất bản tương ứng sẽ được trình bày
b Điều khiển SQL DataSource và Request.Form
Để lọc dữ liệu trong nguồn dữ liệu theo điều kiện thì giá trị tham số là giá trị trên form Tạo trang Lietkesach.aspx gồm:
o 1 Control Textbox chỉ định thuộc tính ID: MaNXB
o 1 Button chỉ định thuộc tính PostbackURL: ~/Lietkesach.aspx (Chính trang thiết kế)
o Tạo SqlDataSource với nguồn dữ liệu như sau:
Trang 10o Điều kiện cho nguồn dữ liệu
Với giá trị điều kiện Form field là: MaNXB (tên Textbx trên trang) Thực thi:Nhập MANXB vào textbox Click nút Xem
c Điều khiển SQL DataSource và điều khiển trình chủ
Trang 11Ta 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 Chudesach.aspx thực hiện liệt kê danh mục sách có chủ đề được chọn từ điều khiển trình chủ DropdownList
Thiết kế Dropdownlist (ddlChude) với nguồn dữ liệu cho từ Table Chude
o Tạo SQL DataSource (SqlDataSource1) cho DropDownList Với nguồn dữ liệu cho DropDownList là Table Chude:
o Tạo DropDownList vào trang đặt thuộc tính
ID: ddlChude
DataSourceID: SqlDataSource1
DataTextField: TenCD (Field hiện thị)
AutoPostBack: True
DataValuefield: MaCD (Field giá trị để truyền tham số)
Tạo GridView (GridView1) Với nguồn dữ liệu từ Table Sach
Trang 12Và tham số điều kiện (Where)
o Thi hành: Chọn 1 chủ đề sách từ DropdownList thì các sách tương ứng của chủ
đề sẽ hiển thị
Trang 13d Điều khiển SQL DataSource và thủ tục nội tại
Tương tự như trường hợp kết nối CSDL bằng phát biểu SQL ta có thể sử dụng điều khiển kết nối CSDL SqlDatasource để truy cập CSDL SQL Server bằng thủ tục nội tại (Stored Procedure)
Ví dụ trong CSDL SQLServer QLBanSach ta tạo 1 thủ tục (Stored Procedure) Sachtheogia cho phép liệt kê các quyển sách với 2 tham số cho Procedure là Giatu và Giaden
Use QLBansach
Create Proc Sachtheogia
@Giatu int, @Giaden Int
as
Select Masach, Tensach, Dongia, Mota, Tenchude, TenNXB,Ngaycapnhat
From sach s, Chude c, nhaxuatban n
Where c.MaCD=s.MaCD and n.MaNXB=s.MaNXB and Dongia Between @Giatu and
@Giaden
Lưu ý : Trong thủ tục có khai báo 2 tham số tên @Giatu và @Giaden
Khi cấu hình Data Source cho điều khiển SqlDataSource
Trang 14Ta chọn : Specify a Custom SQL satament or stored procedure
Tiếp tục chọn Stored Procedure cần kết nối
Trang 15Xác định giá trị cho tham số của Procedure có thể là: Giá trị trực tiếp, QueryString, Form, hay điều khiển trình chủ (Ví dụ sử dụng điều khiển trình chủ DropDownlist1, DropDownList2 tương ứng 2 tham số Giatu và Giaden)
Thi hành:
Hãy Click chọn Giá từ DropDownList1 và Giá đến DropDownList2thì các sách thõa điều kiện giá sẽ hiện thị tương ứng vào GridView