Bài giảng Công nghệ .NET - Chương V: Truy cập cơ sở dữ liệu với ADO.NET
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ .NET - Chương V: Truy cập cơ sở dữ liệu với ADO.NET", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
bai_giang_cong_nghe_net_chuong_v_truy_cap_co_so_du_lieu_voi.ppt
Nội dung text: Bài giảng Công nghệ .NET - Chương V: Truy cập cơ sở dữ liệu với ADO.NET
- Bài giảng CÔNG NGHỆ . NET Thời lượng : 60 LT + 30 TH GV : ĐẶNG VĂN ĐÀNG 1
- Chương V TRUY CẬP CƠ SỞ DỮ LIỆU VỚI ADO.NET 1. ADO.NET 2. Đối tượng SqlConnection 3. Đối tượng SqlCommand 4. Đọc dữ liệu với SqlDataReader 5. DataSet - SqlDataAdapter 2
- Chương V . TRUY CẬP CSDL ADO.NET 1. ADO.NET ADO.NET là một bộ các thư viện hướng đối tượng (OOP) cho phép bạn tương tác với dữ liệu nguồn. Dữ liệu nguồn là một cơ sở dữ liệu (database), cũng có thể là file text, exel hoặc XML. Ở đây, ta sẽ chỉ xem xét tới cách ADO.NET làm việc với database. Các loại database: Microsoft SQL Server, Microsoft Access, Oracle, Borland Interbase, và IBM DB2, 3
- Chương V . TRUY CẬP CSDL ADO.NET Data Provider Thư viện tương tác để truy cập vào những nguồn dữ liệu. Nguồn dữ liệu Lớp API Mô tả Data Sources with an ODBC interface. Normally ODBC Data Provider Odbc older data bases. OleDb Data Provider OleDb Access or Excel. Oracle Data Provider Oracle Oracle Databases. SQL Data Provider Sql Microsoft SQL Server. Borland Data Provider Bdp Interbase, SQL Server, IBM DB2, and Oracle. 4
- Chương V . TRUY CẬP CSDL ADO.NET Data Provider 5
- Chương V . TRUY CẬP CSDL ADO.NET Các đối tượng của ADO.NET SqlConnection SqlCommand SqlDataReader DataSet SqlDataAdapter 6
- Chương V . TRUY CẬP CSDL ADO.NET SqlConnection Để tương tác với database, ta phải có một kết nối tới nó. Kết nối giúp xác định database server, database name, user name, password, và các tham số cần thiết để kết nối tới database. Một đối tượng connection được dùng bởi đối tượng command vì thế chúng sẽ biết database nào để thực thi lệnh. 7
- Chương V . TRUY CẬP CSDL ADO.NET SqlCommand - Quá trình tương tác với database cần phải biết hành động nào ta muốn xảy ra. - Đối tượng command gửi một câu lệnh SQL tới database. - Dùng một đối tượng connection để xác định database nào sẽ được truy xuất. 8
- Chương V . TRUY CẬP CSDL ADO.NET SqlDataReader - Đối tượng data reader cho phép ta lấy được kết quả của một câu lệnh SELECT từ một đối tượng command. - Để tăng hiệu suất, dữ liệu trả về từ một data reader là một luồng dữ liệu fast forward-only(được thay bởi Dataset) 9
- Chương V . TRUY CẬP CSDL ADO.NET DataSet - Đối tượng DataSet là một thể hiện của dữ liệu trong bộ nhớ, chứa nhiều đối tượng DataTable, bên trong DataTable lại có nhiều column và row, giống như các database table thông thường. - DataSet được thiết kế đặc biệt để giúp quản lý dữ liệu trong bộ nhớ. 10
- Chương V . TRUY CẬP CSDL ADO.NET SqlDataAdapter - Data adapter chứa một tham chiếu đến đối tượng connection và mở/đóng kết nối tự động khi đọc và ghi dữ liệu vào database. - Data adapter chứa đối tượng command cho những thao tác SELECT, INSERT, UPDATE và DELETE trên dữ liệu 11
- Chương V . TRUY CẬP CSDL ADO.NET SqlDataAdapter - Một data adapter được định nghĩa cho mỗi table trong một DataSet và nó sẽ quản lý các giao tiếp với database. - Data adapter sẽ đổ vào DataSet khi đọc dữ liệu và thực hiện thay đổi dữ liệu một lượt vào database. 12
- Chương V . TRUY CẬP CSDL ADO.NET Tóm lại - SqlConnection cho phép ta quản lý một kết nối đến nguồn dữ liệu. - SqlCommand cho phép ta gửi lệnh đến dữ liệu. - SqlDataReader để đọc dữ liệu nhanh theo cơ chế forward-only. - DataSet làm việc với dữ liệu đã ngắt kết nối. - SqlDataAdapter thực hiện việc đọc và ghi đến 13 dữ liệu nguồn.
- Chương V . TRUY CẬP CSDL ADO.NET 2. Đối tượng SqlConnection 14
- Chương V . TRUY CẬP CSDL ADO.NET Tạo SqlConnection String str=“Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI”; SqlConnection conn = new SqlConnection(str); 15
- Chương V . TRUY CẬP CSDL ADO.NET Các thông số trong chuỗi kết nối Connection String Mô tả Parameter Name Nhận dạng server, thông thường Data Source (local), tên miền hoặc IP Address. Initial Catalog Tên Database . Thiết lập SSPI kết nối với người dùng Integrated Security không có password User ID Tên người dùng. Password Mật khẩu. 16
- Chương V . TRUY CẬP CSDL ADO.NET Chuỗi SqlConnection có mật khẩu String str=“Data Source=DatabaseServer;Initial Catalog=Northwind;User ID=YourUserID;Password=YourPassword”; SqlConnection conn = new SqlConnection(str); 17
- Chương V . TRUY CẬP CSDL ADO.NET Sử dụng SqlConnection - Mục đích của việc tạo một đối tượng SqlConnection là để các mã lệnh ADO.NET khác có thể làm việc được với database. - Các đối tượng ADO.NET khác, như SqlCommand và SqlDataAdapter dùng một connection như một tham số. 18
- Chương V . TRUY CẬP CSDL ADO.NET Sử dụng SqlConnection - Sử dụng SqlConnection gồm các bước sau: + Tạo một SqlConnection. + Mở connection. + Truyền connection cho các đối tượng ADO.NET khác. + Thực hiện các thao tác database với các đối tượng ADO.NET này. + Đóng connection. 19
- Chương V . TRUY CẬP CSDL ADO.NET Ví dụ: using System.Data.SqlClient; class SqlConnectionDemo{ Tạo kết nối static void Main(){ String str=“Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI”; SqlConnection conn = new SqlConnection(str) SqlDataReader rdr = null; try{ Mở kết nối conn.Open(); SqlCommand cmd = new SqlCommand("select * from Customers", conn); rdr = cmd.ExecuteReader(); while (rdr.Read()) Console.WriteLine(rdr[0]); } finally{ if (rdr != null) rdr.Close(); Đóng kết nối if (conn != null) conn.Close(); } } } 20
- Chương V . TRUY CẬP CSDL ADO.NET 3. Đối tượng SqlCommand 21
- Chương V . TRUY CẬP CSDL ADO.NET Tạo đối tượng SqlCommand Nội dung câu truy vấn String strSql=“select * from Customers”; SqlCommand cmd = new SqlCommand(strSql, conn); Tạo đối tượng cmd kiểu SqlCommand 22
- Chương V . TRUY CẬP CSDL ADO.NET Ví dụ: using System.Data.SqlClient; class SqlConnectionDemo{ static void Main(){ String str=“Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI”; SqlConnection conn = new SqlConnection(str) SqlDataReader rdr = null; try{ Tạo đối tượng SqlCommand conn.Open(); SqlCommand cmd = new SqlCommand("select * from Customers", conn); rdr = cmd.ExecuteReader(); while (rdr.Read()) Console.WriteLine(rdr[0]); } finally{ Thực thi câu lệnh if (rdr != null) rdr.Close(); if (conn != null) conn.Close(); SqlCommand } } } 23
- Chương V . TRUY CẬP CSDL ADO.NET Thêm dữ liệu vào bảng String strSql=@”insert into Tinhthanh (MaTinh, TenTinh) values (‘01', ‘Hà Nội')“; SqlCommand cmd = new SqlCommand(strSql, conn); 24
- Chương V . TRUY CẬP CSDL ADO.NET Cập nhật dữ liệu String strSql=@”Update Tinhthanh set TenTinh=“TP HCM” where TenTinh=“Cần Thơ”; SqlCommand cmd = new SqlCommand(strSql, conn); 25
- Chương V . TRUY CẬP CSDL ADO.NET Xóa dữ liệu String strSql=@”delete from Tinhthanh where TenTinh=“Cần Thơ1”; SqlCommand cmd = new SqlCommand(strSql, conn); 26
- Chương V . TRUY CẬP CSDL ADO.NET Lấy một giá trị đơn String strSql=@” select count(*) from TinhThanh”; SqlCommand cmd = new SqlCommand(strSql, conn); int count = (int)cmd.ExecuteScalar(); 27
- Chương V . TRUY CẬP CSDL ADO.NET 4. Đọc dữ liệu với SqlDataReader 28
- Chương V . TRUY CẬP CSDL ADO.NET Tạo và thực thi SqlDataReader SqlDataReader rdr = null; Tạo mới SqlDataReader rdr = cmd.ExecuteReader(); While(rdr.Read()){ Thực thi câu lệnh cmd type var = (type)rdr[“tên cột"]; } Đọc từng dòng dữ liệu 29
- Chương V . TRUY CẬP CSDL ADO.NET Hoàn thành việc đọc dữ liệu try{ //Truy cập dữ liệu } finally{ if (rdr != null) rdr.Close(); if (conn != null) conn.Close(); } 30
- Chương V . TRUY CẬP CSDL ADO.NET Ví dụ using System.Data.SqlClient; class SqlConnectionDemo{ static void Main(){ String str=“Data Source=(local);Initial Catalog=Northwind;Integrated Security=SSPI”; SqlConnection conn = new SqlConnection(str) SqlDataReader rdr = null; try{ Tạo mới SqlDataReader conn.Open(); SqlCommand cmd = new SqlCommand("select * from Customers", conn); rdr = cmd.ExecuteReader(); while (rdr.Read()) Console.WriteLine(rdr[0]); } finally{ if (rdr != null) rdr.Close(); if (conn != null) conn.Close(); Thực thi, đọc dữ liệu } } } Kết thúc phiên làm việc 31
- Chương V . TRUY CẬP CSDL ADO.NET 5. Dataset - SqlDataAdapter - Một DataSet là một đối tượng chứa dữ liệu trong bộ nhớ và có thể gồm nhiều bảng. - DataSet chỉ chứa dữ liệu chứ không tương tác với nguồn dữ liệu. - SqlDataAdapter sẽ được dùng để quản lý các kết nối với nguồn dữ liệu và cho chúng ta chế độ làm việc disconnected 32
- Chương V . TRUY CẬP CSDL ADO.NET 5. Dataset - SqlDataAdapter 33
- Chương V . TRUY CẬP CSDL ADO.NET Tạo mới - Tạo DataSet DataSet dsTT = new DataSet(); - Tạo SqlDataAdapter String strSql= “Select * from TinhThanh”; SqlDataAdapter daTT = new SqlDataAdapter(strSql, conn); 34
- Chương V . TRUY CẬP CSDL ADO.NET Đổ dữ liệu vào DataSet daTT.Fill(dsTT, “TinhThanh”); Dùng phương thức Fill() của Adapter để đổ dữ liệu từ bảng TinhThanh vào DataSet dsTT 35
- Chương V . TRUY CẬP CSDL ADO.NET Sử dụng DataSet - Một DataSet sẽ gắn dữ liệu vào DataGrid của ASP.NET hoặc Windows form dgTT.DataSource = dsTT; dgTT.DataMember = “TinhThanh”; Controls DataGridView có Name=“dgTT” 36