TỔNG QUAN VỀ ADO.NET 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 liệu .NET .NET data provider cho việc kết nối đến cơ sở dữ liệu, thực thi mộ
Trang 1CHƯƠNG V:
ADO.NET
Lý thuyết: 3 tiết Thực hành 6 tiết
Trang 3TỔNG QUAN VỀ ADO.NET
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
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
Trang 402/21/14 4
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 tìm thấy 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
Trang 5MôhìnhđốitượngADO.NET
Trang 6MôhìnhđốitượngADO.NET
Trang 7KHÔNG GIAN TÊN
Trang 802/21/14 8
CẤU TRÚC CỦA ADO.NET
quản lý việc truy cập dữ liệu từ nguồn dữ liệu Có 2 thành phần chính trong 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
Trang 9CẤ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
Trang 1002/21/14 10
CẤU TRÚC CỦA ADO.NET
Trang 11Cá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);
Trang 1202/21/14 12
SqlConnection con;// Khai báo
String strcon;
strCon=
“ Server =ServerName; Database =DBName; uid =userName; pwd =password ”;
con = new SqlConnection(strCon);
con.Open();
Kết nối với cơ sở dữ liệu Sql:
Trang 15Cá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
SqlCommand
Trang 1602/21/14 16
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
Trang 17Cá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
ExecuteReader(): Gửi CommandText đến Connection
và xây dựng một SqlDataReader, trả về tập các records
Trang 1802/21/14 18
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
Trang 19Cá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
Trang 2002/21/14 20
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
và SqlDataReader
DataReader cung cấp cách truy xuất dữ
liệu forward-only, read – only
Trang 21Các đối tượng trong ADO.Net
một SqlCommand SqlCommand cung cấp
câu lệnh SQL hoặc một stored Procedure
Trang 23Phương thức của DataReader
Read() : Đọc tới record cuối cùng EOF.
NextResult() : di chuyển tới record kế tiếp
Để đọ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”])
Các đối tượng trong ADO.Net
Trang 2402/21/14 24
Trang 25Từng bước kết nối ADO.Net
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
Trang 27Sử dụng DataReader để chứa dữ liệu truy xuất được
Trang 2802/21/14 28
Example
Database chứa 1 table:
tblCustomer(CustomerID,Name)
Viết kết nối vào database và thực các công việc sau:
1) Hiển thị danh sách Customers ở dạng bảng sau:
Trang 29SqlConnection conn=new SqlConnection(strconn);
string sql="SELECT EmployeeID,FirstName FROM Employees";
SqlCommand cmd=new SqlCommand(sql,conn);
Trang 3002/21/14 30
Answer 2)
string strconn = "server=H52PC14;";
strconn += "database=Northwind;uid=sa;pwd=;";
SqlConnection conn = new SqlConnection(strconn);
//string sql ="select UserID,UserName from Users";
string sql="Insert into Users(UserName,UserID,Pass) values
Trang 31Answer 3) Delete record
protected void Page_Load(object sender, EventArgs e)
{
string strconn = "server=H52PC14;";
strconn += "database=Northwind;uid=sa;pwd=;";
SqlConnection conn = new SqlConnection(strconn);
string sql = "delete from Users where UserID='01'";
SqlCommand cmd = new SqlCommand(sql, conn);
conn.Open();
string a = cmd.ExecuteReader().ToString();
Trang 35•DataView
DataView dv=new DataView();
Thuộc tính của DataView
.Count : Trả về số records có trong the DataView
.RowFilter: Thiết lập hoặc trả về giá trị lọc theo 1 hàng bất
kỳ sẽ hiển thị trên DataView.
.Sort: Sắp xếp thứ tự của 1 cột hay nhiều cột trong
Trang 36dv.Sort=“List FieldName sort ” ; //ASC, DESC
dv.Sort=“FieldName1,FieldName2 DESC” ;
dv.Sort = "EMpID";
drView = dv.FindRows(EmpIDvalue); //drView is array
Trang 3802/21/14 38
DataTable
•DataRowView
DataRowView drView=new DataRowView()
drView[ i ] or drView[“ FieldNameColumn ”] : giá trị trả về String valueF ;
valueF=drView[“ StudentID ”];
Or
valueF =drView[ 0 ];
Trang 39 DataColumn: Trình bày lược đồ của
một cột trong một DataTable Mỗi DataColumn có một thuộc tính
DataType để xác định kiểu dữ liệu
được lưu trữ trong DataColumn
DataTable
DataColumn objColumn= new DataColumn(“ ColumnName ”);
Trang 4002/21/14 40
Đối tượng DataTable
DataRow: trình bày một dòng dữ liệu
trong DataTable
Khởi tạo:
DataRow dr=new DataRow();
dr[i] or dr[“FieldName”]: //return value
DataRow dr=new DataRow();
dr[i] or dr[“FieldName”]: //return value
Trang 41Đối tượng DataTable
Các thuộc tính- phương thức của
DataTable
.Columns: trả về các cột trong Datatable
.Columns.Count: trả về số cột trong bảng
.Columns.Add(DataColumn): Thêm cột vào bảng
.Rows :trả về các dòng, mỗi dòng là một đối tượng
Trang 4202/21/14 42
DataTable
•DataTable: Là đối tượng để biểu diễn thông tin trong
Dataset
ColName1 ColName2 … ColNameN
DataColumn DataRow
Trang 43•DataTable
DataTable dt= new DataTable();
.Columns:Trả về tập hợp các columns có trong table
dt
.Rows: Trả về tập hợp các rows có trong table dt
dt.Columns
Count Add(objColumn)
Count
Trang 45DataSet bao gồm tập các đối tượng
DataTable mỗi DataTable điển hình tương đương với một table hoặc là một view mà ta
có thể thiết lập mối quan hệ giữa chúng thông qua đối tượng DataRelation
Dữ liệu trong DataSet có thể nhất quán
bằng cách sử dụng đối tượng
Trang 4602/21/14 46
DataSet
•DataSet
DataSet ds; //Khai báo
.Tables: trả về tất cả các Table chứa trong Dataset
tượng Table thứ i hoặc Table có “tên tblName
Count
ds.Tables
Trang 47 OleDbDataAdapter da = new OleDbDataAdapter(sql,con);
DataSet ds = new DataSet();
da.Fill(ds);
return ds; }
Trang 4802/21/14 48
DataAdapter
•DataAdapter
The DataAdapter : Là đối tượng trung gian giữa 1 DataSet
và nguồn dữ liệu nhận được, dùng để lưu dữ liệu.
DataAdapter.Fill(ds) : Hiển thị data lên Dataset ds
Trang 49OleDbDataAdapter da;
da=new OleDbDataAdapter( strSQL,con );
DataSet ds =new DataSet(“tblA”);
Trang 5002/21/14 50
Khai báo chuỗi kết nối trong file Web.Config:
< configuration >
< appSettings >
< add key = " ConnectionString "
value = " Provider=Microsoft.Jet.OleDb.4.0;Data Source
Database được lưu trong thư mục gốc trong Visual Studio.Net:
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\HOADON.mdb
Trang 51Truy xuất chuỗi kết nối tại trang bất kỳ