Upload
hoc-lap-trinh-web
View
6.091
Download
25
Embed Size (px)
DESCRIPTION
1. ADO.NET 2. Điều khiển Data Source 3. Điều khiển Data List
Citation preview
Bài 5:Làm quen với lập trình CSDL ASP.NET
Những nội dung đã học ở bài trướcTrang MasterĐiều hướng trang WebSử dụng Theme
Hệ thống bài cũ
Làm quen với lập trình CSDL ASP.NET 2
Mục tiêu bài học
1. ADO.NET
Làm quen với lập trình CSDL ASP.NET 3
2. Điều khiển Data Source
3. Điều khiển Data List
Làm quen với lập trình CSDL ASP.NET 4
Hầu hết các ứng dụng ASP.NET đều có tương tác vớiCSDL.Tương tự như ứng dụng Windows, Ứng dụngASP.NET cũng sử dụng ADO.NET để thao tác với CSDLADO.NET là một phần của .NET Framework, đượcxem là “bộ thư viện lớp” chịu trách nhiệm xử lýdữ liệu trong ngôn ngữ MS .NET.
Lập trình CSDL với ASP.NET
Hầu hết các ứng dụng ASP.NET đều có tương tác vớiCSDL.Tương tự như ứng dụng Windows, Ứng dụngASP.NET cũng sử dụng ADO.NET để thao tác với CSDLADO.NET là một phần của .NET Framework, đượcxem là “bộ thư viện lớp” chịu trách nhiệm xử lýdữ liệu trong ngôn ngữ MS .NET.
Làm quen với lập trình CSDL ASP.NET 5
ADO hỗ trợ kết nối tới các hệ quản trị CSDL: SQL Server,Microsoft Access, Oracle…Các thành phần cơ bản của ADO.NET
.NET data provider: cung cấp các lớp để tương tác vớiCSDLDataset: Là bản sao của CSDL hay một phần CSDL trênbộ nhớ
ADO.NET
ADO hỗ trợ kết nối tới các hệ quản trị CSDL: SQL Server,Microsoft Access, Oracle…Các thành phần cơ bản của ADO.NET
.NET data provider: cung cấp các lớp để tương tác vớiCSDLDataset: Là bản sao của CSDL hay một phần CSDL trênbộ nhớ
Làm quen với lập trình CSDL ASP.NET 6
Data provider cung cấp các lớp để tương tác với CSDLData provider gồm 4 thành phần chính
Connection: kết nối với CSDLCommand: thực thi các lệnh sql để lấy dữ liệu từ CSDLhoặc thay đổi CSDLDataReader: đọc dữ liệu tuần tự từ CSDLDataAdapter: lấy dữ liệu từ CSDL lưu vào dataset và cậpnhật CSDL
Data Provider
Data provider cung cấp các lớp để tương tác với CSDLData provider gồm 4 thành phần chính
Connection: kết nối với CSDLCommand: thực thi các lệnh sql để lấy dữ liệu từ CSDLhoặc thay đổi CSDLDataReader: đọc dữ liệu tuần tự từ CSDLDataAdapter: lấy dữ liệu từ CSDL lưu vào dataset và cậpnhật CSDL
Làm quen với lập trình CSDL ASP.NET 7
DatasetLà bản sao của CSDL hay một phần CSDL trên bộ nhớ
DataSet hỗ trợ các thao tác cập nhật CSDLCấu trúc của DataSet giống hệt cấu trúc của cơ sở dữliệu
DataSet
DatasetLà bản sao của CSDL hay một phần CSDL trên bộ nhớ
DataSet hỗ trợ các thao tác cập nhật CSDLCấu trúc của DataSet giống hệt cấu trúc của cơ sở dữliệu
Làm quen với lập trình CSDL ASP.NET 8
Kết nối giữa ứng dụng và cở sở dữliệu (CSDL) thông qua ADO.NET theohai kiến trúc:
Kiến trúc kết nốiThực hiện kết nối tới CSDL trong khi đang thựchiện các thao tác với dữ liệu.Các đối tượng tham gia: Connection,Command, DataReader, DataAdapter
Kiến trúc không kết nốiDataAdapter kết nối với CSDL thông quaConnection, lấy dữ liệu lưu vào DataSet.Ứng dụng sẽ lấy và thay đổi dữ liệu trênDataSetDataAdapter kết nối với CSDL thông quaConnection và cập nhật lại CSDL
ADO.NET
Kết nối giữa ứng dụng và cở sở dữliệu (CSDL) thông qua ADO.NET theohai kiến trúc:
Kiến trúc kết nốiThực hiện kết nối tới CSDL trong khi đang thựchiện các thao tác với dữ liệu.Các đối tượng tham gia: Connection,Command, DataReader, DataAdapter
Kiến trúc không kết nốiDataAdapter kết nối với CSDL thông quaConnection, lấy dữ liệu lưu vào DataSet.Ứng dụng sẽ lấy và thay đổi dữ liệu trênDataSetDataAdapter kết nối với CSDL thông quaConnection và cập nhật lại CSDL
Làm quen với lập trình CSDL ASP.NET 9
Các bước sử dụng đối tượng DataReader để truy xuấtthông tin
B1. Thiết lập chuỗi kết nối cho đối tượng ConnectionB2. Tạo đối tượng Command, truyền đối tượng Connectioncho đối tượng Command.B3: Gọi phương thức Open() của đối tượng Connection đểmở kết nối tới CSDLB4. Gọi phương thức ExecuteReader() của đối tượngcommand để trả về dữ liệu kiểu DataReader.B5. Sử dụng phương thức Read() của DataReader để đọctừng dòng
Kiến trúc kết nốiCác bước sử dụng đối tượng DataReader để truy xuấtthông tin
B1. Thiết lập chuỗi kết nối cho đối tượng ConnectionB2. Tạo đối tượng Command, truyền đối tượng Connectioncho đối tượng Command.B3: Gọi phương thức Open() của đối tượng Connection đểmở kết nối tới CSDLB4. Gọi phương thức ExecuteReader() của đối tượngcommand để trả về dữ liệu kiểu DataReader.B5. Sử dụng phương thức Read() của DataReader để đọctừng dòng
Làm quen với lập trình CSDL ASP.NET 10
Truy xuất CSDL và hiển thị thông tin lên một điều khiểndrop-down listNội dung demo
Tạo chuỗi kết nối trong file web.configKhai báo các đối tượng
Đối tượng ConnectionĐối tượng CommandĐối tượng DataReader
Mở kết nối tới CSDL và truy xuất thông tinMở đối tượng kết nốiGọi ExecuteReader() trên đối tượng Command đã được cấuhình.Xử lý mỗi mẫu tin sử dụng phương thức Read() củaDataReader.
DemoTruy cập CSDL sử dụng kiến trúc kết nối
Truy xuất CSDL và hiển thị thông tin lên một điều khiểndrop-down listNội dung demo
Tạo chuỗi kết nối trong file web.configKhai báo các đối tượng
Đối tượng ConnectionĐối tượng CommandĐối tượng DataReader
Mở kết nối tới CSDL và truy xuất thông tinMở đối tượng kết nốiGọi ExecuteReader() trên đối tượng Command đã được cấuhình.Xử lý mỗi mẫu tin sử dụng phương thức Read() củaDataReader.
Làm quen với lập trình CSDL ASP.NET 11
Tạo chuỗi kết nối trong file web.config
DemoTruy cập CSDL sử dụng kiến trúc kết nối
<connectionStrings><add name="HalloweenConnectionString"
connectionString="Data Source=HAHA\SQLEXPRESS;InitialCatalog=Halloween;Integrated Security=True"
providerName="System.Data.SqlClient"/></connectionStrings>
Khai báo một thuộc tính trong lớp code-behind để lấy thông tin chuỗi kết nối
Làm quen với lập trình CSDL ASP.NET 12
Khai báo một thuộc tính trong lớp code-behind để lấy thông tin chuỗi kết nốiprivate string connectionString =WebConfigurationManager.ConnectionStrings["HalloweenConnectionString"].ConnectionString;
Khai báo các đối tượng Connection, Command,DataReader
DemoTruy cập CSDL sử dụng kiến trúc kết nối
private void FillDdlCategories(){
ddlCategories.Items.Clear();//Định nghĩa câu lệnh SQLstring selectSQL = "SELECT CategoryID, LongName FROM Categories";
// Định nghĩa đối tượng ConnectionSqlConnection con = new SqlConnection(connectionString);
// Chỉ định cấu hình đối tượng commandSqlCommand cmd = new SqlCommand(selectSQL, con);
//Khai báo đối tượng data readerSqlDataReader reader;
// Viết đoạn mã mở kết nối tới CSDL và truy xuất thông tin tại đây}
Làm quen với lập trình CSDL ASP.NET 13
private void FillDdlCategories(){
ddlCategories.Items.Clear();//Định nghĩa câu lệnh SQLstring selectSQL = "SELECT CategoryID, LongName FROM Categories";
// Định nghĩa đối tượng ConnectionSqlConnection con = new SqlConnection(connectionString);
// Chỉ định cấu hình đối tượng commandSqlCommand cmd = new SqlCommand(selectSQL, con);
//Khai báo đối tượng data readerSqlDataReader reader;
// Viết đoạn mã mở kết nối tới CSDL và truy xuất thông tin tại đây}
Mở kết nối tới CSDL và truy xuất thông tin
DemoTruy cập CSDL sử dụng kiến trúc kết nối
try{
con.Open();reader = cmd.ExecuteReader();// Với mỗi phần tử của data reader. Lấy giá trị trường LongName và CategoryID//gán giá trị cho thuộc tính Text & Value của drop-down listwhile (reader.Read()){
ListItem newItem = new ListItem();newItem.Text = reader["LongName"].ToString();newItem.Value = reader["CategoryID"].ToString();ddlCategories.Items.Add(newItem);
}reader.Close();
}catch (Exception err){
lblMessage.Text = "Error reading list of names. ";lblMessage.Text += err.Message;
}finally{
con.Close();}
Làm quen với lập trình CSDL ASP.NET 14
try{
con.Open();reader = cmd.ExecuteReader();// Với mỗi phần tử của data reader. Lấy giá trị trường LongName và CategoryID//gán giá trị cho thuộc tính Text & Value của drop-down listwhile (reader.Read()){
ListItem newItem = new ListItem();newItem.Text = reader["LongName"].ToString();newItem.Value = reader["CategoryID"].ToString();ddlCategories.Items.Add(newItem);
}reader.Close();
}catch (Exception err){
lblMessage.Text = "Error reading list of names. ";lblMessage.Text += err.Message;
}finally{
con.Close();}
Xóa dữ liệuTạo đối tượng ConnectionTạo đối tượng Command, truyền hai tham số cho đốitượng Command là câu lệnh Delete và đối tượngConnection.Gọi phương thức Open() của đối tượng Connection để mởkết nốiGọi phương thức ExecuteNonQuery() của đối tượngCommand
Xóa dữ liệu
Xóa dữ liệuTạo đối tượng ConnectionTạo đối tượng Command, truyền hai tham số cho đốitượng Command là câu lệnh Delete và đối tượngConnection.Gọi phương thức Open() của đối tượng Connection để mởkết nốiGọi phương thức ExecuteNonQuery() của đối tượngCommand
Làm quen với lập trình CSDL ASP.NET 15
DemoXóa dữ liệu
protected void btnDelete_Click(object sender, EventArgs e){
string deleteSQL = "DELETE FROM Categories WHERE CategoryID = @CategoryID";// Định nghĩa đối tượng ConnectionSqlConnection con = new SqlConnection(connectionString);// Chỉ định cấu hình đối tượng commandSqlCommand cmd = new SqlCommand(deleteSQL, con);//Truyền tham số cho đối tượng cmdcmd.Parameters.AddWithValue("CategoryID", ddlCategories.SelectedValue);
try{
con.Open();cmd.ExecuteNonQuery();lblMessage.Text = "One row has been deleted";FillDdlCategories();
}catch (Exception err){
lblMessage.Text = "Error deleting row ";lblMessage.Text += err.Message;
}finally{
con.Close();}
}}
Làm quen với lập trình CSDL ASP.NET 16
protected void btnDelete_Click(object sender, EventArgs e){
string deleteSQL = "DELETE FROM Categories WHERE CategoryID = @CategoryID";// Định nghĩa đối tượng ConnectionSqlConnection con = new SqlConnection(connectionString);// Chỉ định cấu hình đối tượng commandSqlCommand cmd = new SqlCommand(deleteSQL, con);//Truyền tham số cho đối tượng cmdcmd.Parameters.AddWithValue("CategoryID", ddlCategories.SelectedValue);
try{
con.Open();cmd.ExecuteNonQuery();lblMessage.Text = "One row has been deleted";FillDdlCategories();
}catch (Exception err){
lblMessage.Text = "Error deleting row ";lblMessage.Text += err.Message;
}finally{
con.Close();}
}}
Làm quen với lập trình CSDL ASP.NET 17
Ngoài phương pháp truy cập CSDL sử dụng ADO.NET,ASP.NET cung cấp một phương pháp truy cập CSDLkhác giúp lập trình viên viết ít mã hơn đó là sử dụngcác điều khiển data source.Điều khiển data source quản lý các tác vụ kết nối đếnCSDL, đọc và ghi dữ liệu.
Truy cập CSDLsử dụng điều khiển Data Source
Ngoài phương pháp truy cập CSDL sử dụng ADO.NET,ASP.NET cung cấp một phương pháp truy cập CSDLkhác giúp lập trình viên viết ít mã hơn đó là sử dụngcác điều khiển data source.Điều khiển data source quản lý các tác vụ kết nối đếnCSDL, đọc và ghi dữ liệu.
Làm quen với lập trình CSDL ASP.NET 18
Điều khiển data source trả về một nguồn dữ liệu (datasource).Điều khiển data source được buộc vào một điều khiểndữ liệu (gridview, detailsview…) để hiển thị dữ liệu chongười dùng.Mỗi điều khiển data source có thể được buộc vào nhiềuđiều khiển dữ liệuĐiều khiển Data source cung cấp các tính năng truyxuất, chèn, cập nhật, xóa CSDLBản chất của việc sử dụng điều khiển data source cũnglà truy cập qua các đối tượng ADO.NET
Truy cập CSDLsử dụng điều khiển Data Source
Điều khiển data source trả về một nguồn dữ liệu (datasource).Điều khiển data source được buộc vào một điều khiểndữ liệu (gridview, detailsview…) để hiển thị dữ liệu chongười dùng.Mỗi điều khiển data source có thể được buộc vào nhiềuđiều khiển dữ liệuĐiều khiển Data source cung cấp các tính năng truyxuất, chèn, cập nhật, xóa CSDLBản chất của việc sử dụng điều khiển data source cũnglà truy cập qua các đối tượng ADO.NET
Làm quen với lập trình CSDL ASP.NET 19
Hai loại điều khiển datasource thường dùngSQLDataSourceObjectDataSource
SQLDataSource và ObjectDataSource cung cấp phươngpháp truy cập và thao tác với dữ liệu trong một hệ quảntrị CSDL.Khác với điều khiển SQLDataSource, điều khiểnObjectDataSource hỗ trợ phát triển ứng dụng CSDL theokiến trúc ba tầng
Truy cập CSDLsử dụng điều khiển Data Source
Hai loại điều khiển datasource thường dùngSQLDataSourceObjectDataSource
SQLDataSource và ObjectDataSource cung cấp phươngpháp truy cập và thao tác với dữ liệu trong một hệ quảntrị CSDL.Khác với điều khiển SQLDataSource, điều khiểnObjectDataSource hỗ trợ phát triển ứng dụng CSDL theokiến trúc ba tầng
Làm quen với lập trình CSDL ASP.NET 20
Quá trình liên kết trực tiếp giữa điều khiển và dữ liệu gọilà buộc dữ liệuCác điều khiển đã học hỗ trợ buộc dữ liệu:
Các điều khiển list như: Drop-down list, List Box, Radiobutton list, check box list
Các điều khiển khác sẽ được họcDataList, GridView, DetailsView…
Buộc dữ liệu
Quá trình liên kết trực tiếp giữa điều khiển và dữ liệu gọilà buộc dữ liệuCác điều khiển đã học hỗ trợ buộc dữ liệu:
Các điều khiển list như: Drop-down list, List Box, Radiobutton list, check box list
Các điều khiển khác sẽ được họcDataList, GridView, DetailsView…
Làm quen với lập trình CSDL ASP.NET 21
ASP.NET cung cấp phương pháp để buộc dữ liệu lấy từmột nguồn dữ liệu sử dụng thuộc tính DataSourceID củađiều khiển dữ liệu.
Buộc dữ liệu
Điều khiểnSQLDataSource
Điều khiển dữ liệu(data control)
Liên kết qua thuộctính DataSourceID củađiều khiển dữ liệu
ASP.NET cung cấp phương pháp để buộc dữ liệu lấy từmột nguồn dữ liệu sử dụng thuộc tính DataSourceID củađiều khiển dữ liệu.
Làm quen với lập trình CSDL ASP.NET 22
Điều khiểnSQLDataSource
CSDL
Điều khiển dữ liệu(data control)
Liên kết qua thuộctính DataSourceID củađiều khiển dữ liệu
Điều khiển dữ liệu (điều khiển drop-down list) liên kếtvới điều khiển SqlDatasoure
Ví dụ về buộc dữ liệu
<asp:DropDownList ID="ddlCategory" runat="server"DataSourceID="SqlDataSource1" DataTextField="LongName"DataValueField="CategoryID" AutoPostBack="True">
</asp:DropDownList>
Điều khiển SqlDatasoure
Làm quen với lập trình CSDL ASP.NET 23
<asp:SqlDataSource ID="SqlDataSource1" runat="server"ConnectionString="<%$
ConnectionStrings:HalloweenConnectionString %>"SelectCommand="SELECT [CategoryID], [LongName] FROM [Categories]
ORDER BY [LongName]"></asp:SqlDataSource>
Điều khiển SqlDatasoure
Các thuộc tính của điều khiển SqlDataSource
Điều khiển SqlDataSource
Thuộc tính Phương thức
ID ID của điều khiển
RunAt Luôn được gán bằng Server
ConnectionString Chuỗi kết nối.
Làm quen với lập trình CSDL ASP.NET 24
ConnectionString Chuỗi kết nối.
SelectCommand Định nghĩa câu lệnh Select truy xuất dữ liệu đượcthực thi bởi datasource
UpdateCommand Định nghĩa câu lệnh Update
InsertCommand Định nghĩa câu lệnh Insert
Deletecommand Định nghĩa câu lệnh Delete
Ứng dụng gồm:Drop-down list Chose a category
Hiển thị danh mục phân loại sảnphẩmDanh mục này lấy từ CSDLHalloween
Điều khiển DataListHiển thị danh sách sản phẩm củaphân loại sản phẩm được chọn
Hai điều khiển SqlDataSourceLấy dữ liệu từ CSDL và hiển thị lênDrop-down list và Data List
Giới thiệu ứng dụng Product List
Ứng dụng gồm:Drop-down list Chose a category
Hiển thị danh mục phân loại sảnphẩmDanh mục này lấy từ CSDLHalloween
Điều khiển DataListHiển thị danh sách sản phẩm củaphân loại sản phẩm được chọn
Hai điều khiển SqlDataSourceLấy dữ liệu từ CSDL và hiển thị lênDrop-down list và Data List
Làm quen với lập trình CSDL ASP.NET 25
Ứng dụng Product List ở chế độ Design
CategoriesChứa phân loại danh mục sảnphẩm
ProductsChứa danh sách sản phẩm
CustomersChứa thông tin khách hàng
InvoicesLưu thông tin hóa đơn muahàng
LineItemsLưu thông tin danh sách cácitem của từng hóa đơn
CSDL Halloween của ứng dụng
CategoriesChứa phân loại danh mục sảnphẩm
ProductsChứa danh sách sản phẩm
CustomersChứa thông tin khách hàng
InvoicesLưu thông tin hóa đơn muahàng
LineItemsLưu thông tin danh sách cácitem của từng hóa đơn
Làm quen với lập trình CSDL ASP.NET 26
Demo thêm và cấu hình điều khiển SqlDataSource chodrop-down list Chose a Category (hiển thị danh sáchdanh mục sản phẩm lưu trong bảng Categories)
1. Lấy dữ liệu lưu vào datasourceThêm điều khiển SqlDataSourceLưu chuỗi kết nối trong file web.ConfigCấu hình câu lệnh SELECT
2. Liên kết dropdown list với datasource
Nội dung demo
Demo thêm và cấu hình điều khiển SqlDataSource chodrop-down list Chose a Category (hiển thị danh sáchdanh mục sản phẩm lưu trong bảng Categories)
1. Lấy dữ liệu lưu vào datasourceThêm điều khiển SqlDataSourceLưu chuỗi kết nối trong file web.ConfigCấu hình câu lệnh SELECT
2. Liên kết dropdown list với datasource
Làm quen với lập trình CSDL ASP.NET 27
Lấy dữ liệu lưu vào DataSource
Thêm điều khiển SqlDataSource
Làm quen với lập trình CSDL ASP.NET 28
Hai cách lưu chuỗi kết nốiCố định mã trong ứng dụng
Khi CSDL thay đổi, phải sửa lại chuỗikết nối và biên dịch lại
Lưu trong file web.configKhi CSDL thay đổi, chỉ cần sửa lạichuỗi kết nối trong file web.config,không phải biên dịch lại
Luôn lưu chuỗi trong file Web.config
Lấy dữ liệu lưu vào DataSource
Lưu chuỗi kết nối trong file Web.configHai cách lưu chuỗi kết nối
Cố định mã trong ứng dụngKhi CSDL thay đổi, phải sửa lại chuỗikết nối và biên dịch lại
Lưu trong file web.configKhi CSDL thay đổi, chỉ cần sửa lạichuỗi kết nối trong file web.config,không phải biên dịch lại
Luôn lưu chuỗi trong file Web.config
Làm quen với lập trình CSDL ASP.NET 29
<connectionStrings><add name="HalloweenConnectionString"connectionString="Data Source=POLY_115_LINHKT;Initial Catalog=Halloween;Integrated Security=True"providerName="System.Data.SqlClient" />
</connectionStrings>
Chọn check box này. Chuỗikết nối sẽ tự động lưu trong
file Web.config
Lấy dữ liệu lưu vào DataSource
-Chỉ định tênbảng- Chọn các cột lấydữ liệu
-Sử dụng các nút đểthêm các mệnh đềWHERE, ORDER BYcho câu lệnh SELECT
Cấu hình câu lệnh SELECT
Làm quen với lập trình CSDL ASP.NET 30
-Chỉ định tênbảng- Chọn các cột lấydữ liệu
-Sử dụng các nút đểthêm các mệnh đềWHERE, ORDER BYcho câu lệnh SELECT
-Câu lệnhSELECT được tạora
Mã .aspx của điều khiển SqlDataSource tự sinh
Mã aspx củađiều khiển SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" runat="server"ConnectionString="<%$ConnectionStrings:HalloweenConnectionString %>"SelectCommand="SELECT [CategoryID], [LongName] FROM[Categories] ORDER BY [LongName]">
</asp:SqlDataSource>
Làm quen với lập trình CSDL ASP.NET 31
<asp:SqlDataSource ID="SqlDataSource1" runat="server"ConnectionString="<%$ConnectionStrings:HalloweenConnectionString %>"SelectCommand="SELECT [CategoryID], [LongName] FROM[Categories] ORDER BY [LongName]">
</asp:SqlDataSource>
Các cách liên kết datasource với điều khiển listSửa trực tiếp các thuộc tính buộc dữ liệu trong chế độSourceSử dụng cửa sổ Properties của điều khiển để sửa cácthuộc tính buộc dữ liệuSử dụng Data Source Configuration Winzard
Liên kếtdatasource với điều khiển list
Các cách liên kết datasource với điều khiển listSửa trực tiếp các thuộc tính buộc dữ liệu trong chế độSourceSử dụng cửa sổ Properties của điều khiển để sửa cácthuộc tính buộc dữ liệuSử dụng Data Source Configuration Winzard
Làm quen với lập trình CSDL ASP.NET 32
- Click vào đây để mở menu smart tag- Chọn Chose Data Source để mở DataSource Configuration Winzard
Các thuộc tính sử dụng để liên kết dữ liệu
Ví dụ đoạn mã aspx của điều khiển drop-down list liênkết tới datasource
Liên kếtdatasource với điều khiển list
Thuộc tính Mô tả
DataSourceID ID của datasource
DataTextField Tên trường dữ liệu của data source hiển thị trên danhsách
DataValueField Giá trị trả về khi trường dữ liệu tương ứng(DataTextField) được chọn
Các thuộc tính sử dụng để liên kết dữ liệu
Ví dụ đoạn mã aspx của điều khiển drop-down list liênkết tới datasource
Làm quen với lập trình CSDL ASP.NET 33
<asp:DropDownList ID="ddlCategory"runat="server"DataSourceID="SqlDataSource1"DataTextField="LongName"DataValueField="CategoryID"AutoPostBack="True">
</asp:DropDownList>
Giá trị hiển thị trên List Costumes tươngứng với trường LongName của nguồn dữliệuGiá trị trả về khi Cosumes được chọn làCategoryID tương ứng với LongName làCostumes
Làm quen với lập trình CSDL ASP.NET 34
Là điều khiển hỗ trợbuộc dữ liệu thuộc nhómData trên ToolboxDùng để trình bày dữliệu được truy xuất từmột datasource dướidạng danh sáchHỗ trợ thao tác truyxuất, cập nhật, thêm,xóa CSDLĐể định nghĩa các thôngtin hiển thị trên mộtdatalist, ta tạo ra cácTemplate cho datalist.
Điều khiển DataList
HeaderTemplateLà điều khiển hỗ trợbuộc dữ liệu thuộc nhómData trên ToolboxDùng để trình bày dữliệu được truy xuất từmột datasource dướidạng danh sáchHỗ trợ thao tác truyxuất, cập nhật, thêm,xóa CSDLĐể định nghĩa các thôngtin hiển thị trên mộtdatalist, ta tạo ra cácTemplate cho datalist.
Làm quen với lập trình CSDL ASP.NET 35
Một ví dụ về DataListDữ liệu được hiển thị dưới dạng bảng
ItemTemplate
Các loại template của điều khiển DataList
Bạn có thể tạo nhiều template cho một DataList. HaiTemplate thường sử dụng là HeaderTemplate vàItemTemplate.Visual Studio cung cấp giao diện thiết kế để định nghĩagiao diện cho các Template.
Template
Template Mô tả
HeaderTemplate Hiển thị tiêu đề cho datalist trước phần tử đầutiên của datasource
FooterTemplate Hiển thị sau phần tử cuối cùng của datasource
ItemTemplate Hiển thị các phần tử của datasource
AlternatingItemTemplate Hiển thị cho các phần tử luân phiên
Các loại template của điều khiển DataList
Bạn có thể tạo nhiều template cho một DataList. HaiTemplate thường sử dụng là HeaderTemplate vàItemTemplate.Visual Studio cung cấp giao diện thiết kế để định nghĩagiao diện cho các Template.
Làm quen với lập trình CSDL ASP.NET 36
AlternatingItemTemplate Hiển thị cho các phần tử luân phiên
SeparatorTemplate Hiển thị gữa các phần tử
Cung cấp các chức năng để làm việc với DataList sửdụng giao diện thiết kế đồ họa.Các chức năng quan trọng
Chose Data Source: Cấu hình datasource hoặc tạo mộtdatasource mới cho DataListConfigure Data Source: Cấu hình/Sửa cấu hình DataSource(cấu hình câu lệnh Select, Update…)Refresh schema: Làm mới schema CSDL. Sử dụng nếuSchema không hiển thịEdit Templates: Tạo và sửa Template cho DataList
Smart Tag MenuCung cấp các chức năng để làm việc với DataList sửdụng giao diện thiết kế đồ họa.Các chức năng quan trọng
Chose Data Source: Cấu hình datasource hoặc tạo mộtdatasource mới cho DataListConfigure Data Source: Cấu hình/Sửa cấu hình DataSource(cấu hình câu lệnh Select, Update…)Refresh schema: Làm mới schema CSDL. Sử dụng nếuSchema không hiển thịEdit Templates: Tạo và sửa Template cho DataList
Làm quen với lập trình CSDL ASP.NET 37
Các bước làm việc với DataListThêm điều khiển DataList vào WebFormTạo và cấu hình DataSource cho DataListThêm định nghĩa các Template cho DataListBuộc dữ liệu cho các điều khiển trên các Template
Làm việc với DataList
Các bước làm việc với DataListThêm điều khiển DataList vào WebFormTạo và cấu hình DataSource cho DataListThêm định nghĩa các Template cho DataListBuộc dữ liệu cho các điều khiển trên các Template
Làm quen với lập trình CSDL ASP.NET 38
Thêm điều khiển DataList cho ứng dụngProductList. DataList này hiển thị danhsách sản phẩm của danh mục sản phẩmđược chọn.Nội dung demo
Thêm điều khiển DataListCấu hình DataSource cho DataList
Cấu hình câu lệnh SELECT có chứa thamsố
Định nghĩa Template cho DataListBuộc dữ liệu cho các điều khiển trênItemTemplate
DemoSử dụng DataList
Thêm điều khiển DataList cho ứng dụngProductList. DataList này hiển thị danhsách sản phẩm của danh mục sản phẩmđược chọn.Nội dung demo
Thêm điều khiển DataListCấu hình DataSource cho DataList
Cấu hình câu lệnh SELECT có chứa thamsố
Định nghĩa Template cho DataListBuộc dữ liệu cho các điều khiển trênItemTemplate
Làm quen với lập trình CSDL ASP.NET 39
DemoCấu hình DataSource cho DataList
Câu lệnh SELECT chứa tham số
Làm quen với lập trình CSDL ASP.NET 40
Kiểu phần tử địnhnghĩa tham số cho câulệnh SELECT
Mã aspx của điều khiển SqlDataSource với câu lệnhSELECT chứa tham số
DemoCấu hình DataSource cho DataList
<asp:SqlDataSource ID="SqlDataSource2" runat="server"ConnectionString="<%$ ConnectionStrings:HalloweenConnectionString%>"SelectCommand="SELECT [ProductID], [Name], [UnitPrice], [OnHand]
FROM [Products]WHERE ([CategoryID] = @CategoryID)ORDER BY [ProductID]">
<SelectParameters><asp:ControlParameter ControlID="ddlCategory"
Name="CategoryID"PropertyName="SelectedValue" Type="String" />
</SelectParameters></asp:SqlDataSource>
Làm quen với lập trình CSDL ASP.NET 41
<asp:SqlDataSource ID="SqlDataSource2" runat="server"ConnectionString="<%$ ConnectionStrings:HalloweenConnectionString%>"SelectCommand="SELECT [ProductID], [Name], [UnitPrice], [OnHand]
FROM [Products]WHERE ([CategoryID] = @CategoryID)ORDER BY [ProductID]">
<SelectParameters><asp:ControlParameter ControlID="ddlCategory"
Name="CategoryID"PropertyName="SelectedValue" Type="String" />
</SelectParameters></asp:SqlDataSource>
Sinh viên tham khảo thêm các phần tử sử dụng để định nghĩa thamsố cho câu lệnh SELECT trong SGK
Nội dung demo:Định nghĩa HeaderTemplatecho DataListĐịnh nghĩa ItemTemplate choDataListĐịnh dạng hiển thị choDataList
DemoĐịnh nghĩa các template cho DataList
Nội dung demo:Định nghĩa HeaderTemplatecho DataListĐịnh nghĩa ItemTemplate choDataListĐịnh dạng hiển thị choDataList
Làm quen với lập trình CSDL ASP.NET 42
Chọn Edit Templates trong menu smarttag của điều khiển DataList để địnhnghĩa các template
1. Chọn loại Template cần định nghĩa.
2. Thêm các thành phần cho TemplateCó thể thêm:Bảng, text, label, các điều khiển vàotemplate
Đoạn mã aspx được tạo ra
DemoĐịnh nghĩa các template cho DataList
<asp:DataList ID="dlProducts" runat="server" DataKeyField="ProductID"DataSourceID="SqlDataSource2" CellPadding="3" GridLines="Vertical"><HeaderTemplate>
<table><tr>
<td class="col1">ID</td><td class="col2">Product</td><td class="col3">Unit Price</td><td class="col4">On Hand</td>
</tr></table>
</HeaderTemplate><%-- đoạn mã định nghĩa các template khác được viết ở dây--%>
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /></asp:DataList>
Làm quen với lập trình CSDL ASP.NET 43
<asp:DataList ID="dlProducts" runat="server" DataKeyField="ProductID"DataSourceID="SqlDataSource2" CellPadding="3" GridLines="Vertical"><HeaderTemplate>
<table><tr>
<td class="col1">ID</td><td class="col2">Product</td><td class="col3">Unit Price</td><td class="col4">On Hand</td>
</tr></table>
</HeaderTemplate><%-- đoạn mã định nghĩa các template khác được viết ở dây--%>
<HeaderStyle BackColor="Black" Font-Bold="True" ForeColor="White" /></asp:DataList>
Các template hỗ trợ buộc dữ liệuItemTemplateAlternatingItemTemplate
DemoBuộc dữ liệu
cho các điều khiển trong template
Làm quen với lập trình CSDL ASP.NET 44
Hai phương thức sử dụng cho biểu thức mã:- Eval <%# Eval("UnitPrice", "{0:C}") %>Chỉ dùng để hiển thị dữ liệu- Bind <%# Bind("UnitPrice", "{0:C}") %>Dùng để hiển thị dữ liệu và cập nhật dữ liệu từnguồn dữ liệu
Sinh viên tìm hiểu các vấn đề sau:Tạo một datasource có thể cậpnhật CSDLSử dụng bộ đệm dữ liệu
Sinh viên tìm hiểu các vấn đề sau:Tạo một datasource có thể cậpnhật CSDLSử dụng bộ đệm dữ liệu
Làm quen với lập trình CSDL ASP.NET 45
ADO.NETỨng dụng ASP.NET sử dụng ADO.NET để thao tác vớiCSDLADO.NET là một phần của .NET Framework, được xem là“bộ thư viện lớp” chịu trách nhiệm xử lý dữ liệu trong ngônngữ MS .NET.Các thành phần cơ bản của ADO.NET
.NET data provider: cung cấp các lớp để tương tác với CSDLDataset: Là bản sao của CSDL hay một phần CSDL trên bộnhớ
Kết nối giữa ứng dụng và cở sở dữ liệu (CSDL) thông quaADO.NET theo hai kiến trúc
Kiến trúc kết nốiKiến trúc không kết nối
Tổng kết
ADO.NETỨng dụng ASP.NET sử dụng ADO.NET để thao tác vớiCSDLADO.NET là một phần của .NET Framework, được xem là“bộ thư viện lớp” chịu trách nhiệm xử lý dữ liệu trong ngônngữ MS .NET.Các thành phần cơ bản của ADO.NET
.NET data provider: cung cấp các lớp để tương tác với CSDLDataset: Là bản sao của CSDL hay một phần CSDL trên bộnhớ
Kết nối giữa ứng dụng và cở sở dữ liệu (CSDL) thông quaADO.NET theo hai kiến trúc
Kiến trúc kết nốiKiến trúc không kết nối
Làm quen với lập trình CSDL ASP.NET 46
Điều khiển data sourceĐiều khiển data source quản lý các tác vụ kết nối đếnCSDL, đọc và ghi dữ liệu.Bản chất của việc sử dụng điều khiển datasource cũng làtruy cập qua các đối tượng ADO.NET, nhưng sử dụng ítcode hơn ADO.NETĐiều khiển datasource được buộc vào một điều khiển dữliệu để hiển thị dữ liệu cho người dùng.Hai loại điều khiển datasource thường dùng
SQL DataSourceObjectDataSource (Hỗ trợ kiến trúc ba tầng)
Tổng kết
Điều khiển data sourceĐiều khiển data source quản lý các tác vụ kết nối đếnCSDL, đọc và ghi dữ liệu.Bản chất của việc sử dụng điều khiển datasource cũng làtruy cập qua các đối tượng ADO.NET, nhưng sử dụng ítcode hơn ADO.NETĐiều khiển datasource được buộc vào một điều khiển dữliệu để hiển thị dữ liệu cho người dùng.Hai loại điều khiển datasource thường dùng
SQL DataSourceObjectDataSource (Hỗ trợ kiến trúc ba tầng)
Làm quen với lập trình CSDL ASP.NET 47
Điều khiển DataListDùng để trình bày dữ liệu được truy xuất từ mộtdatasource dưới dạng danh sáchHỗ trợ thao tác truy xuất, cập nhật, thêm, xóa CSDLĐể định nghĩa các thông tin hiển thị trên một datalist, tatạo ra các Template cho datalist.
Tổng kết
Điều khiển DataListDùng để trình bày dữ liệu được truy xuất từ mộtdatasource dưới dạng danh sáchHỗ trợ thao tác truy xuất, cập nhật, thêm, xóa CSDLĐể định nghĩa các thông tin hiển thị trên một datalist, tatạo ra các Template cho datalist.
Làm quen với lập trình CSDL ASP.NET 48