Thông tin tài liệu:
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.
Nội dung trích xuất từ tài liệu:
Mô hình 3 lớpADO.NET, 3 LayersNgô Ngọc Đăng Khoa 1ADO.NET 2Giớ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) – ... 3Mô 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 4Disconnected Model• Thao tác đọc (Select) Select DataSetxxxDataAdapter xxxConnection DataTable 5Example• 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); 6Example• 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); 7Hot 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 • ... 8Disconnected Model• Thao tác ghi (Insert/Delete/Update) DataSet xxxDataAdapter xxxCommandBuilder DataTable Dữ liệu gốc Select xxxDataAdapter xxxConnection 9Example - 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); 10Example - 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); 11Example - 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); 12Connected Model• Thao tác đọc (Select) Select xxxCommand xxxConnection xxxDataReader 13Example 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 ...