ƯƠ
NG VI: CH ADO.NET Lý thuyết: 3 tiết Thực hành 6 tiết
02/06/17
1
CẤU TRÚC CỦA ADO.NET
02/06/17 2
TỔNG QUAN VỀ ADO.NET
ADO.NET cung cấp khả năng truy cập các nguồn dữ liệu một cách nhất quán như SQL Server, dữ liệu quản lý thông qua OLE DB và XML
ADO.NET bao gồm các trình cung cấp dữ liệu .NET (.NET data provider) cho việc kết nối đến cơ sở dữ liệu, thực thi một câu lệnh và truy xuất kết quả.
02/06/17 3
TỔNG QUAN VỀ ADO.NET
Đối tượng ADO.NET Dataset cũng có thể được sử dụng một cách độc lập với .NET data provider để quản lý dữ liệu thuộc những ứng dụng hoặc những nguồn từ XML
Lớp ADO.NET được
thấy
tìm
trong namespace System.Data, và được tích hợp với lớp XML được tìm thấy trong namespace System.Xml Connection
02/06/17 4
KHÔNG GIAN TÊN
Không gian tên sử dụng trong
ADO.NET gồm: System.Data System.Data.Common System.Data.SqlClient: dùng cho cơ sở dữ liệu
SQL
System.Data.OleDb dùng cho cơ sở dữ liệu
access
02/06/17 5
CẤU TRÚC CỦA ADO.NET
thành phần chính
ADO.NET Components được thiết kế để quản lý việc truy cập dữ liệu từ nguồn dữ trong liệu. Có 2 ADO.NET: ADO.NET Dataset là thành phần chính của kiến trúc kết nối gián đoạn của ADO.NET. Dataset bao gồm tập hợp một hoặc nhiều đối tượng DataTable
02/06/17 6
CẤU TRÚC CỦA ADO.NET
NET Data Provider - một tập hợp các thành
phần bao gồm các đối tượng
Connection: cung cấp việc kết nối đến CSDL Command :truy cập các câu lệnh CSDL DataReader: cung cấp một luồng truy xuất DL DataAdapter: cung cấp cầu nối giữa đối tượng Dataset và CSDL. DataAdapter sử dụng đối tượng Command để thực thi các câu lệnh SQL
02/06/17 7
Các đối tượng trong ADO.Net Đối tượng Connection Chức năng: Thiết lập kết nối đến cơ sở dữ liệu Kết nối với cơ sở dữ liệu access:
OleDbConnection con;// Khai báo String strcon; strCon ="Provider=Microsoft.Jet.OleDb.4.0;Data Source ="; strCon = strCon + Server.MapPath(".") + "\\sv.mdb"; con = new OleDbConnection(strCon); con.Open();
02/06/17 8
Kết nối với cơ sở dữ liệu Sql:
SqlConnection con;// Khai báo String strcon; strCon= “Server=ServerName;Database=DBName;uid=userName;pwd=password”; con = new SqlConnection(strCon); con.Open();
02/06/17 9
Các phương thức của Connection
Phương thức
Open(): mở kết nối Close(): đóng kết nối Dispose()
02/06/17 10
Các đối tượng trong ADO.Net
Đối tượng Command: thực thi câu lệnh
SQL hoặc một Stored procedure
Một Data Command là một thể hiện của class
hoặc
class OleDbCommand SqlCommand
02/06/17 11
Các đối tượng trong ADO.Net
Các phương thức của DataCommand Cancel(): Huỷ bỏ thực thi của một
SqlCommand
CreateParameter():Tạo một thể hiện mới cho đối tượng SqlParameter.
02/06/17 12
Các đối tượng trong ADO.Net
ExecuteNonQuery(): Thực thi một câu lệnh T-SQL dựa vào Connection và trả về số mẫu tin bị ảnh hưởng như UPDATE, INSERT, DELETE.
ExecuteScalar(): Trả về giá trị đơn (Giá trị cụ thể như 1 table, 1 record, 1 filed …) từ một truy vấn dữ liệu. Gửi
ExecuteReader():
CommandText
đến Connection và xây dựng một SqlDataReader, trả về tập các records
02/06/17 13
Các đối tượng trong ADO.Net
Các thuộc tính của Data Command Connection: Command tham chiếu đến một connection, đối tượng này dùng để giao tiếp với cơ sở dữ liệu, nhận hay trả về SqlConnection mà command sử dụng CommandText: nhận hoặc trả về câu lệnh
T-Sql hay thủ tục để thực thi
02/06/17 14
Các đối tượng trong ADO.Net
CommandTimeout: nhận hay trả về thời
gian chờ thực thi
CommandType: nhận/ trả về giá trị cho biết loại commandtext được gán, các giá trị gồm StoredProcedure, TableDirect,Text. Mặc định là Text
OleDbCommand cmd = new OleDbCommand(strsql,con); (với strsql là câu truy vấn cụ thể )
02/06/17 15
Các đối tượng trong ADO.Net
DataReader: được sử dụng trong những ứng dụng web với những thao tác ngắn với từng yêu cầu, thường là chỉ để hiển thị dữ liệu.
Có 2 loại DataReader: OleDbDataReader
và SqlDataReader.
DataReader cung cấp cách truy xuất dữ
liệu forward-only, read – only.
02/06/17 16
Các đối tượng trong ADO.Net
Để dùng SqlDataReader phải khai báo một SqlCommand. SqlCommand cung cấp một phương thức ExecuteReader() mà nó trả về một SqlDataReader khi thi hành một câu lệnh SQL hoặc một stored Procedure
02/06/17 17
Các đối tượng trong ADO.Net
OleDbCommand cmd; String strSql; strSql = "select * from tblsv"; cmd = new OleDbCommand(strSql, con); rd = cmd.ExecuteReader();
ươ
ươ
T
ng đ
ng
02/06/17 18
OleDbCommand cmd; String strSql; strSql = "select * from tblsv"; cmd = new OleDbCommand(); cmd.Connection = con; cmd.CommandText = strSql; rd = cmd.ExecuteReader();
Các đối tượng trong ADO.Net
ươ
ứ ủ
ng th c c a DataReader
ế ế
ể ọ
ị ủ ừ
ệ
ớ
ỗ
Ph ố ọ ớ i record cu i cùng EOF. Read(): Đ c t ể ớ i record k ti p NextResult(): di chuy n t ử ụ Đ đ c giá tr c a t ng field. S d ng câu l nh: DataReader rs;// Khai báo rs[“NameFiled”] or rs[index] ề ể Chú ý: Nh Convert v ki u chu i Example: varName=Convert.ToString(rs[“Name”])
02/06/17 19
Từng bước kết nối ADO.Net
Để sử dụng DataReader cần phải thực
hiện các bước sau: Tạo và mở kết nối CSDL Connection Tạo đối tượng Command TạoDataReader từ đối tượng Command Gọi phương thức ExecuteReader Sử dụng đối tượng DataReader Đóng đối tượng DataReader Đóng đối tượng Connection
02/06/17 20
Từng bước kết nối trong ADO.Net OleDbConnection con; OleDbCommand cmd; OleDbDataReader rs; String strSQL,strCon; strCon=“Information connect to Database”; strSQL=“SQL statement”; con=new OleDbConnection(strCon); con.Open(); cmd=new OleDbCommand(strSQL); cmd.Connection=con; rs=cmd.ExecuteReader();// if strSQL is Select statement 02/06/17
21
Từng bước kết nối trong ADO.Net
ử ụ
ể ứ ữ ệ
ấ ượ
c
S d ng DataReader đ ch a d li u truy xu t đ while(rs.Read()) { //varName=rs[“FieldName”]; //process varName according to application }
02/06/17 22
Example
ứ
Database ch a 1 table:
ệ
tblCustomer(CustomerID,Name) ế ế ố t k t n i vào database và th c các công vi c sau: ị ể
ở ạ
ự Vi 1) Hi n th danh sách Customers
ả d ng b ng sau:
Danh Sach Khach Hang
Mã khách hàng
Họ tên
KH098
Phan Hoai An
ử ổ
2) Thêm 1 customer 3) S a đ i thông tin 1 customer 4) Xóa 1 customer
02/06/17 23
Answer 1) <% …. strSQL=“Select CustomerID,Name from tblCustomer”; ….. rs=cmd.ExecuteReader(); %>
02/06/17 24
<%=Convert.ToString(rs[“CustomerID”]) %> | ><%=Convert.ToString(rs[“Name”])%> |