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

Mô hình 3 lớp

Chia sẻ: Phan Duy Hùng | Ngày: | Loại File: PDF | Số trang:0

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

Mô hình 3 lớp được cấu thành từ: Presentation Layers, Business Layers, và Data Layers. Các lớp này sẽ giao tiếp với nhau thông qua các dịch vụ (services) mà mỗi lớp cung cấp để tạo nên ứng dụng, lớp này cũng không cần biết bên trong lớp kia làm gì mà chỉ cần biết lớp kia cung cấp dịch vụ gì cho mình và sử dụng nó mà thôi.

Chủ đề:
Lưu

Nội dung Text: Mô hình 3 lớp

  1. ADO.NET, 3 Layers Ngô Ngọc Đăng Khoa 1
  2. ADO.NET 2
  3. Giới thiệu • ActiveX Data Object .NET • Hỗ trợ kết nối, xử lý CSDL trên .NET – Access – SQL Server – ... • Đối với HQT CSDL chưa được ADO.NET hỗ trợ sẵn  cần cài thêm provider – MySQL Connector .NET (MySQL) – ADO.NET 2.0 Provider for SQLite3 (SQLite3) – ... 3
  4. Mô hình ADO.NET có 2 mô hình hoạt động Dis • xxxConnection DataSet connect • xxxDataAdapter DataTable ed • xxxCommandBuilder • xxxConnection Connect ArrayList • xxxDataReader ed • xxxCommand List 4
  5. Disconnected Model • Thao tác đọc (Select) Select DataSet xxxDataAdapter xxxConnection DataTable 5
  6. Example • Access using System.Data.OleDb; //---------------------------------------------------------------------- string cnStr = "Provider=Microsoft.Jet.OleDb.4.0; Data Source=‘db.mdb’"; OleDbConnection cn = new OleDbConnection(cnStr); string sql = "select * from HocSinh"; OleDbDataAdapter da = new OleDbDataAdapter(sql, cn); DataTable dt = new DataTable(); //DataSet ds = new DataSet(); da.Fill(dt); //da.Fill(ds); 6
  7. Example • SQL Server using System.Data.SqlClient; //---------------------------------------------------------------------- string cnStr = "Server=.; Database=QLHS; Integrated Security=SSPI;"; //string cnStr = "Server=.; Database=QLHS; Integrated Security=True;"; //string cnStr = "Server=.; Database=QLHS; UID=...; PWD=...;"; SqlConnection cn = new SqlConnection(cnStr); string sql = "select * from HocSinh"; SqlDataAdapter da = new SqlDataAdapter(sql, cn); DataTable dt = new DataTable(); //DataSet ds = new DataSet(); da.Fill(dt); //da.Fill(ds); 7
  8. Hot Tip • Các thao tác lên các CSDL khác nhau trong ADO.NET là khá tương đồng • Khác biệt ở những điểm sau đây: – using thư viện khác – Chuỗi kết nối khác – Thay xxx trong xxxConnection, xxxDataAdapter, … thành các tên tương ứng: • OleDbConnection, SqlConnection • OleDbDataAdapter, SqlDataAdapter • ... 8
  9. Disconnected Model • Thao tác ghi (Insert/Delete/Update) DataSet xxxDataAdapter xxxCommandBuilder DataTable Dữ liệu gốc Select xxxDataAdapter xxxConnection 9
  10. Example - Insert • SQL Server //dt là DataTable đã chứa dữ liệu lấy từ bảng HocSinh DataRow row = dt.NewRow(); dt.Rows.Add(row); row["TenHS"] = "CR7"; row["DiaChi"] = "MU"; row["DienThoai"] = string.Empty; row["NgaySinh"] = new DateTime(1985, 1, 1); row["MaLop"] = 2; SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da); da.Update(dt); 10
  11. Example - Delete • SQL Server string cnStr = "Server=.; Database=QLHS; Integrated Security=SSPI;"; SqlConnection cn = new SqlConnection(cnStr); string sql = "select * from HocSinh where MaHS=1"; SqlDataAdapter da = new SqlDataAdapter(sql, cn); DataTable dt = new DataTable(); da.Fill(dt); dt.Rows[0].Delete(); //chưa kiểm tra dữ liệu SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da); da.Update(dt); 11
  12. Example - Update • SQL Server string cnStr = "Server=.; Database=QLHS; Integrated Security=SSPI;"; SqlConnection cn = new SqlConnection(cnStr); string sql = "select * from HocSinh where MaHS=1"; SqlDataAdapter da = new SqlDataAdapter(sql, cn); DataTable dt = new DataTable(); da.Fill(dt); DataRow row = dt.Rows[0]; row["TenHS"] = "CR7"; row["DiaChi"] = "RM"; SqlCommandBuilder cmdBuilder = new SqlCommandBuilder(da); da.Update(dt); 12
  13. Connected Model • Thao tác đọc (Select) Select xxxCommand xxxConnection xxxDataReader 13
  14. Example string cnStr = "Server=.; Database=QLHS; Integrated Security=SSPI;"; SqlConnection cn = new SqlConnection(cnStr); SqlCommand cmd = new SqlCommand("select * from HocSinh", cn); cmd.Connection.Open(); SqlDataReader reader = cmd.ExecuteReader(); while (reader.Read()) { int maHS = reader.GetInt32(0); string tenHS = reader["TenHS"].ToString(); string diaChi = reader.GetString(2); string dienThoai = reader["DienThoai"].ToString(); DateTime ngaySinh = Convert.ToDateTime(reader["NgaySinh"]); int maLop = Convert.ToInt32(reader["MaLop"]); } reader.Close(); cmd.Connection.Close(); 14
  15. Connected Model • Thao tác ghi (Insert/Delete/Update) Store Procedure Functions xxxCommand Insert Delete Update xxxConnection 15
  16. Example string cnStr = "Server=.; Database=QLHS; Integrated Security=SSPI;"; SqlConnection cn = new SqlConnection(cnStr); string sql = “Delete From HocSinh Where MaHS=1”; //string sql = “Update HocSinh Set TenHS=‘RO10’ Where MaHS=1”; //string sql = “Insert Into HocSinh(TenHS) Values(‘Messi’)”; SqlCommand cmd = new SqlCommand(sql, cn); cmd.Connection.Open(); cmd.ExecuteNonQuery(); //thực thi lệnh cmd.Connection.Close(); 16
  17. xxxCommand 1. Trỏ đến đối tượng kết nối 4. Danh sách các Connection Parameters tham số truyền vào Command Type 5. Thời gian chờ đợi 2. Loại command thực thi 1 câu SQL Command TimeOut 3. Câu SQL hoặc tên proc, tên bảng Các thuộc tính quan trọng của đối Command Text tượng xxxCommand 17
  18. CommandType CommandType.Text Giá trị mặc định của CommandType Text CommandType.StoreProcedure Các giá trị của thuộc tính CommandType CommandType.TableDirect Store Table Procedure Direct 18
  19. Command’s methods xxxCommand xxxCommand Kiểu trả về của các hàm thông dụng trong đối tượng xxxCommand Các hàm thông dụng Trả về 1 XMLReader Trả về một DataReader Trả về số lượng dòng bị ảnh hưởng Trả về 1 giá trị duy nhất 19
  20. Example string cnStr = "Server=.; Database=QLHS; Integrated Security=SSPI;"; SqlConnection cn = new SqlConnection(cnStr); string sql = “Select COUNT(*) From HocSinh”; SqlCommand cmd = new SqlCommand(sql, cn); cmd.Connection.Open(); int n = Convert.ToInt32(cmd.ExecuteScalar()); cmd.Connection.Close(); //Sử dụng n 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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