intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình cơ sở dữ liệu - Chương 3: Lấy dữ liệu theo cách disconnected – DataAdapter

Chia sẻ: Nhân Chi Sơ | Ngày: | Loại File: PPT | Số trang:36

52
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Chương 3 - Lấy dữ liệu theo cách disconnected – DataAdapter. Nội dung chính trong chương này gồm: Khái niệm DataAdapter, lớp DataAdapter, truy vấn 1 bảng, truy vấn nhiều bảng, truy vấn lược đồ cơ sở dữ liệu, ánh xạ - mapping. Mời các bạn tham khảo.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình cơ sở dữ liệu - Chương 3: Lấy dữ liệu theo cách disconnected – DataAdapter

  1. Chương 3 LẤY DỮ LIỆU THEO CÁCH Disconnected – DataAdapter
  2. Nội dung  Khái niệm DataAdapter  Lớp DataAdapter  Truy vấn 1 bảng  Truy vấn nhiều bảng  Truy vấn lược đồ CSDL  Ánh xạ - Mapping 2
  3. Khái niệm DataAdapter  Định nghĩa “DataAdapter” • DataAdapter là 1 đối tượng giúp chúng ta dùng các đối tượng connected (xxxConnection, xxxCommand) để – Lấy dữ liệu từ data source và lưu trữ dữ liệu đó vào trong các đối tượng disconnected (DataSet, DataTable) – Cập nhật dữ liệu từ các đối tượng disconnected vào data source 3
  4. Khái niệm DataAdapter  Đặc điểm của DataAdapter • DataAdapter là “cầu nối” giữa phần connected và phần disconnected trong ADO.NET • DataAdapter được dùng khi DataSet/DataTable cần tương tác với data source • DataAdapter có thể dùng để lấy dữ liệu từ CSDL và cập nhật dữ liệu vào CSDL 4
  5. Khái niệm DataAdapter DataSet DataAdapter Data source DataTable Fill Fill Update Update DataTable DataAdapter Fill Fill Update Update 5
  6. Lớp DataAdapter  Cấu trúc DataAdapter  Mô hình DataAdapter  Tạo đối tượng DataAdapter  Một số properties và phương thức DataAdapter 6
  7. Lớp DataAdapter Cấu trúc DataAdapter  DataAdapter gồm có 4 đối tượng Command. Mỗi đối tượng làm một nhiệm vụ riêng biệt • SelectCommand • InsertCommand • UpdateCommand • DeleteCommand 7
  8. Lớp DataAdapter Mô hình DataAdapter XxxDataAdapter SelectCommand UpdateCommand InsertCommand DeleteCommand XxxDataReader XxxDataReader XxxCommand XxxCommand XxxCommand XxxCommand XxxCommand XxxCommand XxxCommand XxxCommand XxxConnection XxxConnection sp_SELECT sp_UPDATE sp_INSERT sp_DELETE 8
  9. Lớp DataAdapter Tạo đối tượng DataAdapter  Sử dụng đối tượng xxxDataAdapter phụ thuộc vào Data source • SqlDataAdapter • OleDbDataAdapter • OracleDataAdapter • OdbcDataAdapter 9
  10. Lớp DataAdapter Tạo đối tượng DataAdapter  Tạo đối tượng DataAdapter cần 2 thông tin • Connection • Command SqlDataAdapter da; da = new SqlDataAdapter(); da = new SqlDataAdapter(SqlCommand selectCmd); da = new SqlDataAdapter(string selectCmd, SqlConnection conn); da = new SqlDataAdapter(string selectCmd, string strConn);  Gán đối tượng Command cho DataAdapter SqlCommand selectCmd; … da.SelectCommand = selectCmd; 10
  11. Lớp DataAdapter Một số properties và phương thức DataAdapter  DataAdapter properties • SelectCommand • InsertCommand • UpdateCommand • DeleteCommand  Methods • Fill(DataTable table) Fill(DataSet ds) Fill(DataSet ds, string srcTable) • FillSchema(DataSet ds, SchemaType type) • Update(DataSet ds) Update(DataTable table) 11
  12. Truy vấn 1 bảng  5 bước cơ bản • Bước 1: Tạo đối tượng DataTable • Bước 2: Tạo đối tượng Connection • Bước 3: Tạo đối tượng Command chứa 1 câu truy vấn Select • Bước 4: Tạo đối tượng DataAdapter • Bước 5: Gọi phương thức Fill 12
  13. Truy vấn 1 bảng  Dùng đối tượng DataTable để lưu dữ liệu class MyForm : Form { private DataTable svTable; public MyForm() { InitializeComponent(); svTable = new DataTable(); } } 13
  14. Truy vấn 1 bảng  Tạo đối tượng DataAdapter và lấy dữ liệu private void buttonFillData_Click(object sender, EventArgs e) { string strConn = …; string strSql = “Select … ”; SqlConnection conn = new SqlConnection(strConn); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = strSql; SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(svTable); conn.Dispose(); } 14
  15. Truy vấn 1 bảng  Những thao tác thực hiện khi phương thức Fill được gọi • Mở kết nối • Tạo đối tượng DataTable để chứa dữ liệu nếu chưa có bảng đó trong DataSet (tên bảng mặc định là Table, Table1, ... Nếu không chỉ rõ tên bảng trong hàm Fill) • Lấy dữ liệu đưa vào DataTable • Đóng kết nối 15
  16. Truy vấn nhiều bảng  5 bước cơ bản • Bước 1: Tạo đối tượng DataSet • Bước 2: Tạo đối tượng Connection • Bước 3: Tạo đối tượng Command chứa nhiều câu truy vấn select • Bước 4: Tạo đối tượng DataAdapter • Bước 5: Gọi phương thức Fill 16
  17. Truy vấn nhiều bảng  Dùng đối tượng DataSet để lưu dữ liệu class MyForm : Form { private DataSet dsData; public MyForm() { InitializeComponent(); dsData = new DataSet(); } } 17
  18. Truy vấn nhiều bảng  Tạo đối tượng DataAdapter và lấy dữ liệu private void buttonFillData_Click(object sender, EventArgs e) { string strConn = …; string strSql = “Select … ; Select …”; SqlConnection conn = new SqlConnection(strConn); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = strSql; SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(dsData); conn.Dispose(); } 18
  19. Truy vấn nhiều bảng  Chú ý • DataSet có thể chứa nhiều bảng – Cùng thuộc 1 data source – Thuộc nhiều data source khác nhau • Truy vấn nhiều bảng có thể thực hiện bằng cách khác: – Truy vấn nhiều lần, mỗi lần 1 bảng • Khi gọi da.Fill(dsData); – Tên bảng lần lược được đặt tên là: Table, Table1, Table2, ... • Khi gọi da.Fill(dsData, “Name”); – Tên bảng lần lược được đặt tên là: Name, Name 1, Name 2, ... 19
  20. Truy vấn lược đồ CSDL  Vấn đề • Khi gọi phương thức Fill nhiều lần trên 1 DataTable/DataSet, dữ liệu sẽ được thêm vào DataTable/DataSet nhiều lần  vi phạm ràng buộc CSDL  Nguyên do • DataAdapter không thể xác định được các dòng trùng lập do không có thông tin lược đồ (shema) của các DataTables bên trong DataSet 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2