Bài giảng Lập trình trên môi trường Window - Chương 6: Các đối tượng trong ADO.NET cung cấp cho người học các kiến thức Đối tượng Connection, đối tượng Command, đối tượng DataReadder, giao tiếp CSDL theo mô hình 1 lớp,... Mời các bạn cùng tham khảo nội dung chi tiết.
Chương 6: CÁC ĐỐI TƯỢNG TRONG ADO.NET Giảng Viên: ThS Dương Thành Phết Email: phetcm@gmail.com – YahooID: phetcm Website: http://www.thayphet.net Tel: 0918158670 http://www.thayphet.net NỘI DUNG Đối tượng Connection Đối tượng Command Đối tượng DataReadder Đối tượng Dataset Đối tượng DataAdapter Giao tiếp CSDL theo mơ hình lớp Giao tiếp CSDL theo mơ hình lớp http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Vai trò Connection ADO.net tạo kết nối ứng dụng với CSDL Khi cthực kết nối cần xác định thơng tin cho Connection thơng qua thuộc tính Connection String Tùy thuoc vào Data Provider Với SQLServer • Server name • Database name • User name • Password Với Access • Database name • User name • Password http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Thuộc tính ConnectionString: Chuỗi kết nối DataSource State: Tình trạng kết nối: Connecting (đang kêt nối), Open (đã kêt nối), Broken (kết nối bị ngắt kết nối), Closed (kết nối đóng) Phương thức Open(): Thiết lập kết nối đến DS Close(): Đóng kết nối với DS http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Các bước tạo kết nối Bước 1: Khởi tạo đối tượng Connection với tham số connection string database tương ứng Bước 2: Thiết lập kết nối đến database phương thức Open Bước 3: Thực thao tác khai thác liệu (select, insert, delete, update) từ database Bước 4: đóng kết nối đến database phương thức Close http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Tạo kết nối với SQLServer (cách 1) using System.Data.SqlClient; SqlConnection cnn = new SqlConnection(); cnn.ConnectionString = server=localhost; database=Northwind; uid=sa; pwd=sa"; cnn.Open(); //Mở kết nối //xử lý trình kết nối … cnn.Close(); //Đóng két nối Sử dụng tên miền: System.Data.SqlClient; Server: Chỉ định tên máy chứa Database Database: Chỉ định tên sở liệu Uid: Tên tài khỏan đăng nhập SQLServer (nếu có) Pwd: Mật đăng nhập (nếu có) http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Tạo kết nối với SQLServer (cách 2) using System.Data.SqlClient; SqlConnection cnn = new SqlConnection(); cnn.ConnectionString = “Data Source=localhost; Initial Catalog=Northwind; UserId=sa; Password=sa” cnn.Open(); //Mở kết nối //xử lý trình kết nối … cnn.Close(); //Đóng két nối DataSource: Chỉ định tên máy chứa Database Initial Catalog: Chỉ định tên sở liệu Userid: Tên tài khỏan đăng nhập SQLServer (nếu có) Password: Mật đăng nhập (nếu có) http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Tạo kết nối với MS Access using System.Data.OleDb; OleDBConnection cnn = new OleDbSqlConnection(); cnn.ConnectionString = “Provider = Microsoft.Jet.OLEDB.4.0; Data Source=QLHOCSINH.MDB"; cnn.Open(); //xử lý trình kết nối cnn.Close(); Đối với MS Access 2007/2010 Provider=Microsoft.ACE.OLEDB.12.0 http://www.thayphet.net ĐỐI TƯỢNG CONNECTION Minh họa: using System.Data.SqlClient; SqlConnection cnn = new SqlConnection(); private void btLogin_Click(object sender, EventArgs e) { String Tenmay = txtServername.Text; String TenDN = txtUsername.Text; String Matkhau = txtPassword.Text; String TenCSDL = txtDatabasename.Text; cnn.ConnectionString = "Server=" + Tenmay + "; Database=" + TenCSDL + " ; User Id=" + TenDN + "; Password= " + Matkhau; try { cnn.Open(); MessageBox.Show("Kết nối thành công", "Thông báo"); cnn.Close(); } catch { MessageBox.Show("Kết nối thất bại", "Thông báo"); } } http://www.thayphet.net ĐỐI TƯỢNG COMMAND 10 Quá trình tương tác với database cần phải biết hành động muốn xảy Điều thực đối tượng command Dùng đối tượng command để gửi câu lệnh SQL tới database Một đối tượng command dùng đối tượng connection để xác định database truy xuất Có thể dùng đối tượng command riêng lẻ để thực thi lệnh trực tiếp, gắn cho SqlDataAdapter http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP Thuộc tính sqlconn Phương thức Database Execute ExecuteNonQuery 37 Ý nghĩa Thuộc lớp SqlConnection Ý nghĩa Hàm khởi tạo (Constructor) Thực thi câu lệnh truy vấn trả kết DataTable Dùng cho câu lệnh Select Thực thi câu lệnh không quan tâm đến kết trả Dùng cho câu lệnh Insert, Delete, Update http://www.thayphet.net GIAO TIẾP CSDL VỚI MÔ HÌNH LỚP Right-Click project ThuVien, chọn Add Class… 38 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP Nhập vào tên lớp Database.cs click Add 39 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP Viết code cho Database.cs sau: 40 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 41 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP Bước : Xây dựng lớp xử lý nghiệp vụ cho Nhân viên: Nhanvien.cs 42 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 43 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP Bước 3: Xây dựng lớp xử lý giao diện cho frmNhanVien.cs Thiết kế giao diện sau, đặt tên frmNhanVien 44 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 45 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 46 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 47 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 48 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 49 http://www.thayphet.net GIAO TIẾP CSDL VỚI MƠ HÌNH LỚP 50 51 ... xử lý CSDL, code xử lý nghiệp vụ code xử lý thể nằm chung với nhau, làm chương trình khó quản lý Để khắc phục nhược điểm trên, chuyển sang mơ hình lớp 34 http://www.thayphet.net GIAO TIẾP CSDL... hóa cho hệ thống Nếu sau cần thay đổi môi trường ứng dụng (sang Oracle, Access, Db2 ) việc chỉnh sửa lớp Database mà không cần quan tâm đến phần lại ứng dụng 36 http://www.thayphet.net GIAO TIẾP... MessageBox.Show("Kết nối thành công", "Thông báo"); cnn.Close(); } catch { MessageBox.Show("Kết nối thất bại", "Thông báo"); } } http://www.thayphet.net ĐỐI TƯỢNG COMMAND 10 Quá trình tương tác với