Bài 10: Data Access
Lê Quang Lợi
Email:
Bài 10: Data Access
» DataControls
» Binding
» SqlData Controls
» Template
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.1 Data Control
» DataControl: Các Servercontrols phục vụ tương tác CSDL
» Tương tác: Kết nối/Đọc/Ghi dữ liệu, hiển thị kết quả
Kết nối/đọc/ghi: SQLDataSource, LinQDataSrource…
Đối tượng chung: SqlCommand, DataAdapter, DataTable…
Hiển thị: Repeater, GridView, DetaileView, FormView …
Hỗ trợ: QueryExtender, Datapager
» CSDL: SQLserver, Oracle, mySQL, DB2, …
» Hỗ trợ cơ chế Binding : <%# Eval(Thuộc tính)%>
Lê Quang Lợi:
Mơn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.2 Data Binding
» Binding: Cách kết hợp dữ liệu với server controls
»
Cú pháp: <%# Eval (trường dữ liệu)%>
»
Quy trình Binding CSDL
1) Tạo giao diện( Template): thể hiện/trình bày dữ liệu
2) Tạo nguồn dữ liệu: Cấu trúc hợp với giao dện
3) Trỏ dữ liệu cho giao diện: DataSource, DataSourceID
4) Kết hợp dữ liệu với giao diện:Gọi hàm Control.DataBind();
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.2 Data Binding
» Controls Binding:
DataCommand: câu lệnh SQLDataSource
DataSrourecID, DataSrource: nguồn dữ liệu
DataMember, DatakeyName: Trường dữ liệu cần kết hợp
» Controls Template: thể hiện giao diện khuôn mẫu
» Thuộc tính DataSourceID: Nguồn dữ liệu cần hiển thị
» Thuộc tính Datasource: Nguồn dữ liệu (lập trình)
» Phương thức DataBind(): Kết hợp dữ liệu với Server control
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.2 Data Binding
» GridView: thể hiện bảng dữ liệu Table (hàng/cột)
» ListView: thể hiện dữ liệu dạng danh sách
» Repeater: thể hiện dữ liệu lặp đi lặp lại dạng Template
» Thuộc tính DataSourceID/ DataSource: Nguồn dữ liệu
» Thuộc tính EnablePaging phân trang trên Control
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.2 Data Binding (FormView, DetailesView)
» Thể hiện dữ liệu dạng trường dữ liệu
» Thể hiện chi tiết một RecordeSet (1 dòng dữ liệu)
» Cho phép thao tác trên RecordeSet
» Thộc tính: DataValue, DataSourceID, DataKeys, DataMember
Lê Quang Lợi:
Mơn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.3 SqlDataSource
» Server Control:Hỗ trợ thao tác dữ liệu với CSDL
Tạo kết nối
Thực thi các kết nối: SQL
Gửi kết quả về cho Display DataControls
» SQLDataSource: Thao tác CSDL SQLserver
» LinQDataSource: Thao tác dữ liệu dưới dạng LinQ
» XMLDataSource: Thao tác dữ liệu dạng XML
» EntityDataSource: dữ liệu dạng đối tượng
» ObjectDataSource: Dữ liệu là tập đối tượng
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.3.1 SqlDataSource
» Đối tượng chứa câu lệnh thao tác với CSDL SqlServer
» Đọc/Ghi dữ liệu từ servercontrols đến CSDL
ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
SelectCommand="SELECT ID, Name FROM Students"
UpdateCommand="Update Students SET Name=@Name, WHERE
ID=@ID" >
</asp:SqlDataSource>
»
Thuộc tính: Select/Insert/Delete/UpdateCommand
Lê Quang Lợi:
Mơn học : Cơng nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.3.1 SqlDataSource
ConnectionString="<%$ ConnectionStrings: strconn %>"
<!—lấy dữ liệu -->
SelectCommand="SELECT [UserId], [Email] FROM [User]"
</asp:SqlDataSource>
DataSourceID=" sqlTDS1">
</asp:GridView>
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.3.2 LinQ DataSource
» Tương tác dữ liệu theo LinQ tương tự SqlDataSource
» Bảng dữ liệu dạng tập hợp/ tập đối tượng
Ví dụ
TableName="Contacts" ID=“lqDTS" runat="server">
</asp:LinqDataSource>
» Thuộc tính ContextTypeName: Nguồn LinQ
» Thuộc tính TableName: Tên đối tượng của nguồn LinQ
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY
10.4 Data pager
» Cho phép hiển thị phân trang CSDL thành các trang(mảnh)
PageSize="3" OnPreRender="Data_PreRender">
<Fields>
ShowNextPageButton="False" /> <asp:NumericPagerField />
ShowPreviousPageButton="False" />
</Fields>
</asp:DataPager>
Lê Quang Lợi:
Môn học : Công nghệ WEB (ASP.NET)
CNPM-CNTT-ĐHSPKT HY