Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 38 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
38
Dung lượng
2,64 MB
Nội dung
ĐHQG HCM – TRƯỜNG ĐH KHOA HỌC TỰ NHIÊN KHOA CÔNG NGHỆ THÔNG TIN Truy xuất sở liệu với ADO.NET Lập trình ứng dụng quản lý ThS Ngơ Chánh Đức Giới thiệu ADO.NET Lập trình ứng dụng quản lý Database driver Database driver – Trình điều kiển CSDL: ▪ Thành phần trung gian hệ quản trị CSDL bên (ứng dụng) Database driver Application DBMS Các loại database driver ODBC driver (Open database connectivity): ▪ phát triển Microsoft ▪ Hỗ trợ Microsoft SQL Server, MySQL, PostgreSQL, Oracle OLEDB provider ▪ Microsoft OLE DB Provider for ODBC ▪ Microsoft OLE DB Provider for Oracle ▪ Microsoft OLE DB Provider for Microsoft Jet Các loại database driver JDBC (Java Database Connectivity) driver: ▪ Được tích hợp máy ảo java JVM ▪ Hỗ trợ CSDL sử dụng ODBC, Oracal, ADO.Net provider: ▪ API NET Framework ▪ Hỗ trợ CSDL SQL Server, Orcal, Access, Thư viện ADO.NET Phát triển từ thành phần xử lý liệu ADO (ActiveX Data Object) Có thể thao tác với liệu kết nối, không kết nối XML Là thư viện Microsoft NET Framework Đặc điểm thư viện ADO.NET Interoperability – Tương tác nhiều hệ thống ▪ Sử dụng định dạng XML để đóng gói liệu sử dụng HTTP Scalability – Hỗ trợ nhiều người dùng ▪ Sử dụng liệu dạng disconnected data ▪ Sử dụng Connection pooling để giữ kết nối Productivity – Mở rộng khả làm việc với CSDL Performance – Hiệu suất Kiến trúc ADO.NET .NET Data Provider DataSet Connected Objets Disconnected Objects Thêm liệu Tạo DataRow thêm vào DataTable Xem liệu Sử dụng phương thức Select Thao tác CSDL với NET Data Provider Các bước thao tác CSDL Bước Bước Bước Bước Bước • Tạo chuỗi kết nối cnStr • Kết nối CSDL với đối tượng XXXConnection • Tạo chuỗi truy vấn strSQL thao tác CSDL • Thực thi chuỗi strSQL với đối tượng XXXCommand XXXDataAdapter • Đóng kết nối Bước : Tạo chuỗi kết nối Kết nối với CSDL Access: String cnStr = " Provider = Microsoft.Jet.OLEDB.4.0; Data Source = DeAnCongTy.mdb"; Kết nối với CSDL SQL Server: String cnStr = "Provider=SQLNCLI;Server=(local)\SQLEXPRES S;Database=DeAnCongTy;Trusted_Connection=yes;"; Chuỗi kết nối Câu hỏi: ▪ không đường dẫn tuyệt đối đến tập tin CSDL tập tin CSDL hiểu nằm đâu? ▪ Làm biết connection string loại sở liệu khác Bước 2: Mở kết nối XXXConnection Trong trường hợp thao tác với OleDb OleDbConnection cn = new OleDbConnection(cnStr); cn.Open(); Trong trường hợp thao tác với SqlClient SqlConnection cn = new SqlConnection(cnStr); cn.Open(); Bước 3: Tạo chuỗi strSQL thao tác CSDL Ví dụ: Lấy danh sách tất học sinh String strSQL = "Select * From HocSinh"; Ghi chú: ▪ Trong câu SQL phức tạp phải cộng thêm chuỗi thêm parameter Bước 4: Thực thi chuỗi strSQL với XXXDataAdapter Ví dụ thao tác với OleDb DataTable dt = new DataTable(); OleDbDataAdapter da = new OleDbDataAdapter(strSQL, cn); da.Fill(dt); Bước 4: Thực thi chuỗi strSQL với XXXCommand Ví dụ thao tác với OleDb OleDbCommand cmd = new OleDbCommand(strSQL, cn); OleDbDataReader dr = cmd.ExecuteReader(); Đọc kết If (dr.HasRows) { While (dr.Read()) { MaHS = dr.GetInt32(0); HoTen = dr.GetString (“HoTen”); } } Bước 5: Đóng kết nối cn.Close(); Câu hỏi: ▪ Có cần thiết phải mở/đóng kết nối với lần thao tác với CSDL? Chỉ mở/đóng lần vào đầu/cuối chương trình? Connection Pooling Cơ chế giúp tiết kiệm chi phí việc lặp lại đóng – mở kết nối đến CSDL Xem thêm ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/sql-serverconnection-pooling ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/ole-db-odbc-andoracle-connection-pooling DataTable vs DataReader DataTable & XXXDataReader: lưu giữ kết truy vấn DataTable: ▪ Truy xuất ngẫu nhiên Duyệt tới, lui ▪ Chiếm nhiều nhớ, thường dùng để hiển thị liệu DataGridView ▪ Là kết trả thực thi câu query với XXXDataAdapter DataReader: ▪ Liên kết với kết nối CSDL ▪ Truy xuất Chỉ duyệt tới, khơng duyệt lui ▪ Chiếm nhớ Thường dùng để load liệu lên ComboBox ▪ Là kết trả thực thi câu query với XXXCommand Demo Tham khảo ADO.NET Architecture ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/ado-netarchitecture ADO.NET DataSets ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/ado-net-datasets NET Framework Data Providers ▪ https://docs.microsoft.com/enus/dotnet/framework/data/adonet/data-providers