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ước
Trang Master
Điều hướng trang Web
Sử dụng Theme
Hệ thống bài cũ
Làm quen với lập trình C...
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ới
CSDL.
Tương tự như ứng dụng Windows, Ứng dụng
ASP.NET cũng sử dụng ADO.N...
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ới CSDL
Data provider gồm 4 thành phần chính
Connection: kết nối với CSDL
Com...
Dataset
Là 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 CSDL
Cấu trúc của DataSet g...
Kết nối giữa ứng dụng và cở sở dữ
liệu (CSDL) thông qua ADO.NET theo
hai kiến trúc:
Kiến trúc kết nối
Thực hiện kết nối tớ...
Các bước sử dụng đối tượng DataReader để truy xuất
thông tin
B1. Thiết lập chuỗi kết nối cho đối tượng Connection
B2. Tạo ...
Truy xuất CSDL và hiển thị thông tin lên một điều khiển
drop-down list
Nội dung demo
Tạo chuỗi kết nối trong file web.conf...
Tạo chuỗi kết nối trong file web.config
Demo
Truy cập CSDL sử dụng kiến trúc kết nối
<connectionStrings>
<add name="Hallow...
Khai báo các đối tượng Connection, Command,
DataReader
Demo
Truy cập CSDL sử dụng kiến trúc kết nối
private void FillDdlCa...
Mở kết nối tới CSDL và truy xuất thông tin
Demo
Truy cập CSDL sử dụng kiến trúc kết nối
try
{
con.Open();
reader = cmd.Exe...
Xóa dữ liệu
Tạo đối tượng Connection
Tạo đối tượng Command, truyền hai tham số cho đối
tượng Command là câu lệnh Delete và...
Demo
Xóa dữ liệu
protected void btnDelete_Click(object sender, EventArgs e)
{
string deleteSQL = "DELETE FROM Categories W...
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 CSDL
khác giúp lập trình viên v...
Điều khiển data source trả về một nguồn dữ liệu (data
source).
Điều khiển data source được buộc vào một điều khiển
dữ liệu...
Hai loại điều khiển datasource thường dùng
SQLDataSource
ObjectDataSource
SQLDataSource và ObjectDataSource cung cấp phươn...
Quá trình liên kết trực tiếp giữa điều khiển và dữ liệu gọi
là buộc dữ liệu
Các điều khiển đã học hỗ trợ buộc dữ liệu:
Các...
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...
Điều khiển dữ liệu (điều khiển drop-down list) liên kết
với điều khiển SqlDatasoure
Ví dụ về buộc dữ liệu
<asp:DropDownLis...
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ô...
Ứng dụng gồm:
Drop-down list Chose a category
Hiển thị danh mục phân loại sản
phẩm
Danh mục này lấy từ CSDL
Halloween
Điều...
Categories
Chứa phân loại danh mục sản
phẩm
Products
Chứa danh sách sản phẩm
Customers
Chứa thông tin khách hàng
Invoices
...
Demo thêm và cấu hình điều khiển SqlDataSource cho
drop-down list Chose a Category (hiển thị danh sách
danh mục sản phẩm l...
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ối
Cố định mã trong ứng dụng
Khi CSDL thay đổi, phải sửa lại chuỗi
kết nối và biên dịch lại
Lưu tr...
Lấy dữ liệu lưu vào DataSource
-Chỉ định tên
bảng
- Chọn các cột lấy
dữ liệu
-Sử dụng các nút để
thêm các mệnh đề
WHERE, O...
Mã .aspx của điều khiển SqlDataSource tự sinh
Mã aspx của
điều khiển SqlDataSource
<asp:SqlDataSource ID="SqlDataSource1" ...
Các cách liên kết datasource với điều khiển list
Sửa trực tiếp các thuộc tính buộc dữ liệu trong chế độ
Source
Sử dụng cửa...
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ên
kết tới datasource
Liên k...
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óm
Data trên Toolbox
Dùng để trình bày dữ
liệu được truy xuất từ
một datasource ...
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. Hai
Template thường sử dụng là H...
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 Sou...
Các bước làm việc với DataList
Thêm điều khiển DataList vào WebForm
Tạo và cấu hình DataSource cho DataList
Thêm định nghĩ...
Thêm điều khiển DataList cho ứng dụng
ProductList. DataList này hiển thị danh
sách sản phẩm của danh mục sản phẩm
được chọ...
Demo
Cấ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ử địn...
Mã aspx của điều khiển SqlDataSource với câu lệnh
SELECT chứa tham số
Demo
Cấu hình DataSource cho DataList
<asp:SqlDataSo...
Nội dung demo:
Định nghĩa HeaderTemplate
cho DataList
Định nghĩa ItemTemplate cho
DataList
Định dạng hiển thị cho
DataList...
Đoạn mã aspx được tạo ra
Demo
Định nghĩa các template cho DataList
<asp:DataList ID="dlProducts" runat="server" DataKeyFie...
Các template hỗ trợ buộc dữ liệu
ItemTemplate
AlternatingItemTemplate
Demo
Buộc dữ liệu
cho các điều khiển trong template
...
Sinh viên tìm hiểu các vấn đề sau:
Tạo một datasource có thể cập
nhật CSDL
Sử dụng bộ đệm dữ liệu
Sinh viên tìm hiểu các v...
ADO.NET
Ứng dụng ASP.NET sử dụng ADO.NET để thao tác với
CSDL
ADO.NET là một phần của .NET Framework, được xem là
“bộ thư ...
Điều khiển data source
Điều khiển data source quản lý các tác vụ kết nối đến
CSDL, đọc và ghi dữ liệu.
Bản chất của việc s...
Điều khiển DataList
Dùng để trình bày dữ liệu được truy xuất từ một
datasource dưới dạng danh sách
Hỗ trợ thao tác truy xu...
Upcoming SlideShare
Loading in …5
×

Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo

11,373 views

Published on

1. ADO.NET
2. Điều khiển Data Source
3. Điều khiển Data List

  • DỊCH VỤ THIẾT KẾ THUYẾT TRÌNH (Thiết kế profile cho doanh nghiệp--- Thiết kế Brochure--- Thiết kế Catalogue--- slide bài giảng--- slide bài phát biểu---slide bài tốt nghiệp--- dạy học viên thiết kế thuyết trình…)-----(Giá từ 8.000 đ - 10.000 đ/1trang slide)------ Mọi chi tiết vui lòng liên hệ với chúng tôi: điện thoại 0973.764.894 hoặc zalo 0973.764.894 (Miss. Huyền) ----- • Thời gian hoàn thành: 1-2 ngày sau khi nhận đủ nội dung ----- Qui trình thực hiện: ----- 1. Bạn gửi nội dung cần thiết kế về địa chỉ email dvluanvan@gmail.com ----- 2. DỊCH VỤ THIẾT KẾ THUYẾT TRÌNH báo giá chi phí và thời gian thực hiện cho bạn ----- 3. Bạn chuyển tiền tạm ứng 50% chi phí để tiến hành thiết kế ----- 4. Gửi file slide demo cho bạn xem để thống nhất chỉnh sửa hoàn thành. ----- 5. Bạn chuyển tiền 50% còn lại. ----- 6. Bàn giao file gốc cho bạn.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DỊCH VỤ THIẾT KẾ THUYẾT TRÌNH (Thiết kế profile cho doanh nghiệp--- Thiết kế Brochure--- Thiết kế Catalogue--- slide bài giảng--- slide bài phát biểu---slide bài tốt nghiệp--- dạy học viên thiết kế thuyết trình…)-----(Giá từ 8.000 đ - 10.000 đ/1trang slide)------ Mọi chi tiết vui lòng liên hệ với chúng tôi: điện thoại 0973.764.894 hoặc zalo 0973.764.894 (Miss. Huyền) ----- • Thời gian hoàn thành: 1-2 ngày sau khi nhận đủ nội dung ----- Qui trình thực hiện: ----- 1. Bạn gửi nội dung cần thiết kế về địa chỉ email dvluanvan@gmail.com ----- 2. DỊCH VỤ THIẾT KẾ THUYẾT TRÌNH báo giá chi phí và thời gian thực hiện cho bạn ----- 3. Bạn chuyển tiền tạm ứng 50% chi phí để tiến hành thiết kế ----- 4. Gửi file slide demo cho bạn xem để thống nhất chỉnh sửa hoàn thành. ----- 5. Bạn chuyển tiền 50% còn lại. ----- 6. Bàn giao file gốc cho bạn.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Bài 5: Làm quen với lập trình CSDL ASP.NET - Giáo trình FPT - Có ví dụ kèm theo

  1. 1. Bài 5: Làm quen với lập trình CSDL ASP.NET
  2. 2. Những nội dung đã học ở bài trước Trang Master Điều hướng trang Web Sử dụng Theme Hệ thống bài cũ Làm quen với lập trình CSDL ASP.NET 2
  3. 3. 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
  4. 4. Làm quen với lập trình CSDL ASP.NET 4
  5. 5. Hầu hết các ứng dụng ASP.NET đều có tương tác với CSDL. Tương tự như ứng dụng Windows, Ứng dụng ASP.NET cũng sử dụng ADO.NET để thao tác với CSDL ADO.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ô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ới CSDL. Tương tự như ứng dụng Windows, Ứng dụng ASP.NET cũng sử dụng ADO.NET để thao tác với CSDL ADO.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ôn ngữ MS .NET. Làm quen với lập trình CSDL ASP.NET 5
  6. 6. 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ới CSDL Dataset: Là bản sao của CSDL hay một phần CSDL trên bộ 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ới CSDL Dataset: Là bản sao của CSDL hay một phần CSDL trên bộ nhớ Làm quen với lập trình CSDL ASP.NET 6
  7. 7. Data provider cung cấp các lớp để tương tác với CSDL Data provider gồm 4 thành phần chính Connection: kết nối với CSDL Command: thực thi các lệnh sql để lấy dữ liệu từ CSDL hoặc thay đổi CSDL DataReader: đọc dữ liệu tuần tự từ CSDL DataAdapter: lấy dữ liệu từ CSDL lưu vào dataset và cập nhật CSDL Data Provider Data provider cung cấp các lớp để tương tác với CSDL Data provider gồm 4 thành phần chính Connection: kết nối với CSDL Command: thực thi các lệnh sql để lấy dữ liệu từ CSDL hoặc thay đổi CSDL DataReader: đọc dữ liệu tuần tự từ CSDL DataAdapter: lấy dữ liệu từ CSDL lưu vào dataset và cập nhật CSDL Làm quen với lập trình CSDL ASP.NET 7
  8. 8. Dataset Là 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 CSDL Cấu trúc của DataSet giống hệt cấu trúc của cơ sở dữ liệu DataSet Dataset Là 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 CSDL Cấ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
  9. 9. Kết nối giữa ứng dụng và cở sở dữ liệu (CSDL) thông qua ADO.NET theo hai kiến trúc: Kiến trúc kết nối Thực hiện kết nối tới CSDL trong khi đang thực hiệ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ối DataAdapter kết nối với CSDL thông qua Connection, lấy dữ liệu lưu vào DataSet. Ứng dụng sẽ lấy và thay đổi dữ liệu trên DataSet DataAdapter kết nối với CSDL thông qua Connection 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 theo hai kiến trúc: Kiến trúc kết nối Thực hiện kết nối tới CSDL trong khi đang thực hiệ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ối DataAdapter kết nối với CSDL thông qua Connection, lấy dữ liệu lưu vào DataSet. Ứng dụng sẽ lấy và thay đổi dữ liệu trên DataSet DataAdapter kết nối với CSDL thông qua Connection và cập nhật lại CSDL Làm quen với lập trình CSDL ASP.NET 9
  10. 10. Các bước sử dụng đối tượng DataReader để truy xuất thông tin B1. Thiết lập chuỗi kết nối cho đối tượng Connection B2. Tạo đối tượng Command, truyền đối tượng Connection cho đố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 CSDL B4. Gọi phương thức ExecuteReader() của đối tượng command để trả về dữ liệu kiểu DataReader. B5. Sử dụng phương thức Read() của DataReader để đọc từng dòng Kiến trúc kết nối Các bước sử dụng đối tượng DataReader để truy xuất thông tin B1. Thiết lập chuỗi kết nối cho đối tượng Connection B2. Tạo đối tượng Command, truyền đối tượng Connection cho đố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 CSDL B4. Gọi phương thức ExecuteReader() của đối tượng command để trả về dữ liệu kiểu DataReader. B5. Sử dụng phương thức Read() của DataReader để đọc từng dòng Làm quen với lập trình CSDL ASP.NET 10
  11. 11. Truy xuất CSDL và hiển thị thông tin lên một điều khiển drop-down list Nội dung demo Tạo chuỗi kết nối trong file web.config Khai 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 tin Mở đối tượng kết nối Gọi ExecuteReader() trên đối tượng Command đã được cấu hình. Xử lý mỗi mẫu tin sử dụng phương thức Read() của DataReader. Demo Truy 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ển drop-down list Nội dung demo Tạo chuỗi kết nối trong file web.config Khai 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 tin Mở đối tượng kết nối Gọi ExecuteReader() trên đối tượng Command đã được cấu hình. Xử lý mỗi mẫu tin sử dụng phương thức Read() của DataReader. Làm quen với lập trình CSDL ASP.NET 11
  12. 12. Tạo chuỗi kết nối trong file web.config Demo Truy cập CSDL sử dụng kiến trúc kết nối <connectionStrings> <add name="HalloweenConnectionString" connectionString="Data Source=HAHASQLEXPRESS;Initial Catalog=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ối private string connectionString = WebConfigurationManager.ConnectionStrings["HalloweenConnectionString"].ConnectionString;
  13. 13. Khai báo các đối tượng Connection, Command, DataReader Demo Truy 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 SQL string selectSQL = "SELECT CategoryID, LongName FROM Categories"; // Định nghĩa đối tượng Connection SqlConnection con = new SqlConnection(connectionString); // Chỉ định cấu hình đối tượng command SqlCommand cmd = new SqlCommand(selectSQL, con); //Khai báo đối tượng data reader SqlDataReader 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 SQL string selectSQL = "SELECT CategoryID, LongName FROM Categories"; // Định nghĩa đối tượng Connection SqlConnection con = new SqlConnection(connectionString); // Chỉ định cấu hình đối tượng command SqlCommand cmd = new SqlCommand(selectSQL, con); //Khai báo đối tượng data reader SqlDataReader reader; // Viết đoạn mã mở kết nối tới CSDL và truy xuất thông tin tại đây }
  14. 14. Mở kết nối tới CSDL và truy xuất thông tin Demo Truy 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 list while (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 list while (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(); }
  15. 15. Xóa dữ liệu Tạo đối tượng Connection Tạo đối tượng Command, truyền hai tham số cho đối tượng Command là câu lệnh Delete và đối tượng Connection. Gọi phương thức Open() của đối tượng Connection để mở kết nối Gọi phương thức ExecuteNonQuery() của đối tượng Command Xóa dữ liệu Xóa dữ liệu Tạo đối tượng Connection Tạo đối tượng Command, truyền hai tham số cho đối tượng Command là câu lệnh Delete và đối tượng Connection. Gọi phương thức Open() của đối tượng Connection để mở kết nối Gọi phương thức ExecuteNonQuery() của đối tượng Command Làm quen với lập trình CSDL ASP.NET 15
  16. 16. Demo Xó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 Connection SqlConnection con = new SqlConnection(connectionString); // Chỉ định cấu hình đối tượng command SqlCommand cmd = new SqlCommand(deleteSQL, con); //Truyền tham số cho đối tượng cmd cmd.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 Connection SqlConnection con = new SqlConnection(connectionString); // Chỉ định cấu hình đối tượng command SqlCommand cmd = new SqlCommand(deleteSQL, con); //Truyền tham số cho đối tượng cmd cmd.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(); } } }
  17. 17. Làm quen với lập trình CSDL ASP.NET 17
  18. 18. 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 CSDL khác giúp lập trình viên viết ít mã hơn đó là sử dụng cá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 đến CSDL, đọc và ghi dữ liệu. Truy cập CSDL sử 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 CSDL khác giúp lập trình viên viết ít mã hơn đó là sử dụng cá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 đến CSDL, đọc và ghi dữ liệu. Làm quen với lập trình CSDL ASP.NET 18
  19. 19. Điều khiển data source trả về một nguồn dữ liệu (data source). Điều khiển data source được buộc vào một điều khiển dữ liệu (gridview, detailsview…) để hiển thị dữ liệu cho ngườ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 truy xuất, chèn, cập nhật, xóa CSDL Bản chất của việc sử dụng điều khiển data source cũng là truy cập qua các đối tượng ADO.NET Truy cập CSDL sử dụng điều khiển Data Source Điều khiển data source trả về một nguồn dữ liệu (data source). Điều khiển data source được buộc vào một điều khiển dữ liệu (gridview, detailsview…) để hiển thị dữ liệu cho ngườ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 truy xuất, chèn, cập nhật, xóa CSDL Bản chất của việc sử dụng điều khiển data source cũng là truy cập qua các đối tượng ADO.NET Làm quen với lập trình CSDL ASP.NET 19
  20. 20. Hai loại điều khiển datasource thường dùng SQLDataSource ObjectDataSource SQLDataSource và ObjectDataSource cung cấp phương pháp truy cập và thao tác với dữ liệu trong một hệ quản trị CSDL. Khác với điều khiển SQLDataSource, điều khiển ObjectDataSource hỗ trợ phát triển ứng dụng CSDL theo kiến trúc ba tầng Truy cập CSDL sử dụng điều khiển Data Source Hai loại điều khiển datasource thường dùng SQLDataSource ObjectDataSource SQLDataSource và ObjectDataSource cung cấp phương pháp truy cập và thao tác với dữ liệu trong một hệ quản trị CSDL. Khác với điều khiển SQLDataSource, điều khiển ObjectDataSource hỗ trợ phát triển ứng dụng CSDL theo kiến trúc ba tầng Làm quen với lập trình CSDL ASP.NET 20
  21. 21. Quá trình liên kết trực tiếp giữa điều khiển và dữ liệu gọi là buộc dữ liệu Cá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, Radio button list, check box list Các điều khiển khác sẽ được học DataList, 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ọi là buộc dữ liệu Cá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, Radio button list, check box list Các điều khiển khác sẽ được học DataList, GridView, DetailsView… Làm quen với lập trình CSDL ASP.NET 21
  22. 22. 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ển SQLDataSource Điều khiển dữ liệu (data control) Liên kết qua thuộc tí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ển SQLDataSource CSDL Điều khiển dữ liệu (data control) Liên kết qua thuộc tính DataSourceID của điều khiển dữ liệu
  23. 23. Điều khiển dữ liệu (điều khiển drop-down list) liên kết vớ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
  24. 24. 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 được thự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
  25. 25. Ứng dụng gồm: Drop-down list Chose a category Hiển thị danh mục phân loại sản phẩm Danh mục này lấy từ CSDL Halloween Điều khiển DataList Hiển thị danh sách sản phẩm của phân loại sản phẩm được chọn Hai điều khiển SqlDataSource Lấy dữ liệu từ CSDL và hiển thị lên Drop-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ản phẩm Danh mục này lấy từ CSDL Halloween Điều khiển DataList Hiển thị danh sách sản phẩm của phân loại sản phẩm được chọn Hai điều khiển SqlDataSource Lấy dữ liệu từ CSDL và hiển thị lên Drop-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
  26. 26. Categories Chứa phân loại danh mục sản phẩm Products Chứa danh sách sản phẩm Customers Chứa thông tin khách hàng Invoices Lưu thông tin hóa đơn mua hàng LineItems Lưu thông tin danh sách các item của từng hóa đơn CSDL Halloween của ứng dụng Categories Chứa phân loại danh mục sản phẩm Products Chứa danh sách sản phẩm Customers Chứa thông tin khách hàng Invoices Lưu thông tin hóa đơn mua hàng LineItems Lưu thông tin danh sách các item của từng hóa đơn Làm quen với lập trình CSDL ASP.NET 26
  27. 27. Demo thêm và cấu hình điều khiển SqlDataSource cho drop-down list Chose a Category (hiển thị danh sách danh mục sản phẩm lưu trong bảng Categories) 1. Lấy dữ liệu lưu vào datasource Thêm điều khiển SqlDataSource Lưu chuỗi kết nối trong file web.Config Cấ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 cho drop-down list Chose a Category (hiển thị danh sách danh mục sản phẩm lưu trong bảng Categories) 1. Lấy dữ liệu lưu vào datasource Thêm điều khiển SqlDataSource Lưu chuỗi kết nối trong file web.Config Cấ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
  28. 28. 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
  29. 29. Hai cách lưu chuỗi kết nối Cố định mã trong ứng dụng Khi CSDL thay đổi, phải sửa lại chuỗi kết nối và biên dịch lại Lưu trong file web.config Khi CSDL thay đổi, chỉ cần sửa lại chuỗ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.config Hai cách lưu chuỗi kết nối Cố định mã trong ứng dụng Khi CSDL thay đổi, phải sửa lại chuỗi kết nối và biên dịch lại Lưu trong file web.config Khi CSDL thay đổi, chỉ cần sửa lại chuỗ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ỗi kết nối sẽ tự động lưu trong file Web.config
  30. 30. Lấy dữ liệu lưu vào DataSource -Chỉ định tên bảng - Chọn các cột lấy dữ liệu -Sử dụng các nút để thêm các mệnh đề WHERE, ORDER BY cho 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ên bảng - Chọn các cột lấy dữ liệu -Sử dụng các nút để thêm các mệnh đề WHERE, ORDER BY cho câu lệnh SELECT -Câu lệnh SELECT được tạo ra
  31. 31. 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>
  32. 32. Các cách liên kết datasource với điều khiển list Sửa trực tiếp các thuộc tính buộc dữ liệu trong chế độ Source Sử dụng cửa sổ Properties của điều khiển để sửa các thuộc tính buộc dữ liệu Sử dụng Data Source Configuration Winzard Liên kết datasource với điều khiển list Các cách liên kết datasource với điều khiển list Sửa trực tiếp các thuộc tính buộc dữ liệu trong chế độ Source Sử dụng cửa sổ Properties của điều khiển để sửa các thuộc tính buộc dữ liệu Sử 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ở Data Source Configuration Winzard
  33. 33. 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ên kết tới datasource Liên kết datasource 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 danh sá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ên kế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ệu Giá trị trả về khi Cosumes được chọn là CategoryID tương ứng với LongName là Costumes
  34. 34. Làm quen với lập trình CSDL ASP.NET 34
  35. 35. Là điều khiển hỗ trợ buộc dữ liệu thuộc nhóm Data trên Toolbox Dùng để trình bày dữ liệu được truy xuất từ một datasource dưới dạng danh sách Hỗ 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, ta tạo ra các Template cho datalist. Điều khiển DataList HeaderTemplate Là điều khiển hỗ trợ buộc dữ liệu thuộc nhóm Data trên Toolbox Dùng để trình bày dữ liệu được truy xuất từ một datasource dưới dạng danh sách Hỗ 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, ta tạo ra các Template cho datalist. Làm quen với lập trình CSDL ASP.NET 35 Một ví dụ về DataList Dữ liệu được hiển thị dưới dạng bảng ItemTemplate
  36. 36. 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. Hai Template thường sử dụng là HeaderTemplate và ItemTemplate. Visual Studio cung cấp giao diện thiết kế để định nghĩa giao diện cho các Template. Template Template Mô tả HeaderTemplate Hiển thị tiêu đề cho datalist trước phần tử đầu tiê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. Hai Template thường sử dụng là HeaderTemplate và ItemTemplate. Visual Studio cung cấp giao diện thiết kế để định nghĩa giao 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ử
  37. 37. 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ột datasource mới cho DataList Configure 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ếu Schema không hiển thị Edit Templates: Tạo và sửa Template cho DataList Smart Tag Menu 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ột datasource mới cho DataList Configure 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ếu Schema 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
  38. 38. Các bước làm việc với DataList Thêm điều khiển DataList vào WebForm Tạo và cấu hình DataSource cho DataList Thêm định nghĩa các Template cho DataList Buộ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 DataList Thêm điều khiển DataList vào WebForm Tạo và cấu hình DataSource cho DataList Thêm định nghĩa các Template cho DataList Buộ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
  39. 39. Thêm điều khiển DataList cho ứng dụng ProductList. DataList này hiển thị danh sá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 DataList Cấu hình DataSource cho DataList Cấu hình câu lệnh SELECT có chứa tham số Định nghĩa Template cho DataList Buộc dữ liệu cho các điều khiển trên ItemTemplate Demo Sử dụng DataList Thêm điều khiển DataList cho ứng dụng ProductList. DataList này hiển thị danh sá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 DataList Cấu hình DataSource cho DataList Cấu hình câu lệnh SELECT có chứa tham số Định nghĩa Template cho DataList Buộc dữ liệu cho các điều khiển trên ItemTemplate Làm quen với lập trình CSDL ASP.NET 39
  40. 40. Demo Cấ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ử định nghĩa tham số cho câu lệnh SELECT
  41. 41. Mã aspx của điều khiển SqlDataSource với câu lệnh SELECT chứa tham số Demo Cấ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 tham số cho câu lệnh SELECT trong SGK
  42. 42. Nội dung demo: Định nghĩa HeaderTemplate cho DataList Định nghĩa ItemTemplate cho DataList Định dạng hiển thị cho DataList Demo Định nghĩa các template cho DataList Nội dung demo: Định nghĩa HeaderTemplate cho DataList Định nghĩa ItemTemplate cho DataList Định dạng hiển thị cho DataList Làm quen với lập trình CSDL ASP.NET 42 Chọn Edit Templates trong menu smart tag của điều khiển DataList để định nghĩ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 Template Có thể thêm: Bảng, text, label, các điều khiển vào template
  43. 43. Đ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>
  44. 44. Các template hỗ trợ buộc dữ liệu ItemTemplate AlternatingItemTemplate Demo Buộ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
  45. 45. Sinh viên tìm hiểu các vấn đề sau: Tạo một datasource có thể cập nhật CSDL Sử 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ập nhật CSDL Sử dụng bộ đệm dữ liệu Làm quen với lập trình CSDL ASP.NET 45
  46. 46. ADO.NET Ứng dụng ASP.NET sử dụng ADO.NET để thao tác với CSDL ADO.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ôn ngữ 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 CSDL Dataset: 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 qua ADO.NET theo hai kiến trúc Kiến trúc kết nối Kiế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ới CSDL ADO.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ôn ngữ 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 CSDL Dataset: 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 qua ADO.NET theo hai kiến trúc Kiến trúc kết nối Kiến trúc không kết nối Làm quen với lập trình CSDL ASP.NET 46
  47. 47. Điều khiển data source Điều khiển data source quản lý các tác vụ kết nối đến CSDL, đọ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 ít code 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 DataSource ObjectDataSource (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 đến CSDL, đọ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 ít code 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 DataSource ObjectDataSource (Hỗ trợ kiến trúc ba tầng) Làm quen với lập trình CSDL ASP.NET 47
  48. 48. Điều khiển DataList Dùng để trình bày dữ liệu được truy xuất từ một datasource dưới dạng danh sách Hỗ 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, ta tạo ra các Template cho datalist. Tổng kết Điều khiển DataList Dùng để trình bày dữ liệu được truy xuất từ một datasource dưới dạng danh sách Hỗ 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, ta tạo ra các Template cho datalist. Làm quen với lập trình CSDL ASP.NET 48

×