Lập trình ứng dụng web - Chương V: Ado.net

Tổng quan về ADO.NET

Tạo kết nối đến CSDL.

Các điều khiển ràng buộc danh sách(List-Bound)

Hiển thị DataSet vào điều khiển List-Bound

 

ppt 51 trang dienloan 3520
Bạn đang xem 20 trang mẫu của tài liệu "Lập trình ứng dụng web - Chương V: Ado.net", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Lập trình ứng dụng web - Chương V: Ado.net

Lập trình ứng dụng web - Chương V: Ado.net
11/21/2021 
1 
CHƯƠNG V:  ADO.NET 
Lý thuyết: 3 tiết 
Thực hành 6 tiết 
ADO.NET 
Tổng quan về ADO.NET 
Tạo kết nối đến CSDL. 
Các điều khiển ràng buộc danh sách(List-Bound) 
Hiển thị DataSet vào điều khiển List-Bound 
11/21/2021 
2 
11/21/2021 
3 
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ả. 
11/21/2021 
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 
MôhìnhđốitượngADO.NET 
11/21/2021 
5 
MôhìnhđốitượngADO.NET 
11/21/2021 
6 
11/21/2021 
7 
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 
11/21/2021 
8 
CẤU TRÚC CỦA ADO.NET 
ADO.NET Components được thiết kế để 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 
11/21/2021 
9 
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 
11/21/2021 
10 
CẤU TRÚC CỦA ADO.NET 
11/21/2021 
11 
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(); 
11/21/2021 
12 
Sql Connection con; // Khai báo 
String strcon; 
strCon = “ Server =ServerName; Database =DBName; uid =userName; pwd =password ”; 
con = new Sql Connection (strCon); 
con.Open(); 
Kết nối với cơ sở dữ liệu Sql: 
Các phương thức: 
ExecuteNonQuery():Thực thi những câu lệnh 
như: INSERT, UPDATE or DELETE 
ExecuteScalar():Trả về giá trị đơn từ một truy vấn dữ liệu. 
ExecuteReader():Trả về tập record. 
11/21/2021 
13 
11/21/2021 
14 
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 
11/21/2021 
15 
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 OleDbCommand hoặc class SqlCommand 
11/21/2021 
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. 
11/21/2021 
17 
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 . 
ExecuteReader(): Gửi CommandText đến Connection và xây dựng một SqlDataReader, trả về tập các records 
11/21/2021 
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 
11/21/2021 
19 
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ể ) 
11/21/2021 
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. 
Có 2 loại DataReader: OleDbDataReader và SqlDataReader . 
DataReader cung cấp cách truy xuất dữ liệu forward-only, read – only. 
11/21/2021 
21 
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 
11/21/2021 
22 
Các đối tượng trong ADO.Net 
OleDbCommand cmd; 
String strSql; 
strSql = "select * from tblsv" ; 
cmd = new OleDbCommand (strSql, con); 
rd = cmd.ExecuteReader(); 
OleDbCommand cmd; 
String strSql; 
strSql = "select * from tblsv" ; 
cmd = new OleDbCommand (); 
cmd.Connection = con; 
cmd.CommandText = strSql; 
rd = cmd.ExecuteReader(); 
Tương đương 
11/21/2021 
23 
Phươ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 
11/21/2021 
24 
11/21/2021 
25 
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ạo DataReader 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 
11/21/2021 
26 
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 
Từng bước kết nối trong ADO.Net 
11/21/2021 
27 
Sử dụng DataReader để chứa dữ liệu truy xuất được 
while(rs.Read()) 
{ 
 // varName =rs[“FieldName”]; 
 //process varName according to application 
} 
Từng bước kết nối trong ADO.Net 
11/21/2021 
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: 
Hiển thị danh sách Customers ở dạng bảng sau: 
2) Thêm 1 customer 
3) Sửa đổi thông tin 1 customer 
4) Xóa 1 customer 
Danh Sach Khach Hang 
Mã khách hàng 
Họ tên 
KH098 
Phan Hoai An 
11/21/2021 
29 
Answer 1 ) 
 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="SELECT EmployeeID,FirstName FROM Employees"; 
 SqlCommand cmd=new SqlCommand(sql,conn); 
 conn.Open(); 
 SqlDataReader dr; 
 dr=cmd.ExecuteReader(); 
 while(dr.Read()) 
 { 
 string text=dr["FirstName"].ToString(); 
 string value=dr["EmployeeID"].ToString(); 
 drCategory.Items.Add(new ListItem(text,value)); 
 } 
 } 
11/21/2021 
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 ('miny','002','dfgg')"; 
 //sql = sql + UserName + "'" + "," + "'" + UserID + "')"; 
 SqlCommand cmd = new SqlCommand(sql, conn); 
 conn.Open(); 
 SqlDataReader dr; 
 dr = cmd.ExecuteReader(); 
 while (dr.Read()) 
 { 
 ListBox1.Items.Add(dr[0].ToString()); 
11/21/2021 
31 
Answer 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(); 
11/21/2021 
32 
Answer 4 ) 
<% 
. 
strSQL=“update set Name= ‘ ”+varName+” ’ where CustomerID= ‘ “+ varID +” ’ ”; 
 .. 
cmd. ExecuteNonQuery() ; 
%> 
11/21/2021 
33 
DataTable 
DataSet 
DataAdapter 
Các đối tượng trong ADO.Net 
11/21/2021 
34 
DataTable 
DataView 
DataRowView 
DataColumn 
DataRow 
DataTable 
11/21/2021 
35 
DataTable 
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 DataView . 
11/21/2021 
36 
DataTable 
DataView 
Ví dụ về các thuộc tính của DataView 
int num ; 
num =dv.Count; 
dv.RowFilter=“ Expression condition ”; 
dv.RowFilter=“ FieldNameColumn>=10 ”; 
dv.Sort=“ List FieldName sort ” ; //ASC, DESC 
dv.Sort=“ FieldNam e1 ,FieldNam e2 DESC ” ; 
dv.Sort = "EMpID"; 
drView = dv.FindRows(EmpIDvalue); //drView is array 
11/21/2021 
37 
DataTable 
DataView 
DataView dv =new DataView() 
Method of DataView 
FindRows: Trả về 1 mảng đối tượng DataRowView mà hàng đó sẽ tìm. 
DataRowView[] drView ; 
dv .Sort=“ FieldName ”; 
drView = dv .FindRows( value ) 
// Với value : FieldName 
11/21/2021 
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 ]; 
11/21/2021 
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 ”); 
DataTable dt= new DataTable(); 
Dt.Columns.Add(objColumn); 
11/21/2021 
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 
11/21/2021 
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 datarow 
.Rows.Count :trả về số dòng trong bảng 
.Rows.Add(DataRow) :thêm một dòng vào bảng 
11/21/2021 
42 
DataTable 
DataTable: Là đối tượng để biểu diễn thông tin trong Dataset . 
ColName1 
ColName2 
. 
ColNameN 
Dat a11 
Dat a12 
Data1N 
DataM1 
DataM2 
. 
DataMN 
DataColumn 
DataRow 
11/21/2021 
43 
DataTable 
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 
dt.Rows 
Count 
 Add(objColumn) 
Count 
 Add(objRow) 
11/21/2021 
44 
DataTable 
DataTable 
DefaultView : 1 đối ượng DataView (Dạng hiển thị khác của DataTable) 
DataTable dt = new DataTable(); 
Phương thức DataTable 
NewRow():Tạo 1 dòng mới DataRow 
DataRow dr; 
dr=dt.NewRow(); 
11/21/2021 
45 
DataSet 
DataSet 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 UniqueConstraint và ForeignKeyConstraint 
11/21/2021 
46 
DataSet 
DataSet 
DataSet ds; //Khai báo 
DataSet ds = new DataSet();//Khai báo và khởi tạo 
.Tables : trả về tất cả các Table chứa trong Dataset. 
ds.Tables[ i ] or ds.Tables[“ tblName ”] : Trả về đối tượng Table thứ i hoặc Table có “tên tblName 
Count 
Add (objTable) 
ds .Tables 
DataSet 
 public DataSet Laydulieu(string sql) 
 { 
 OleDbCommand cmd; 
 cmd = new OleDbCommand(sql); 
 OleDbDataAdapter da = new OleDbDataAdapter(sql,con); 
 DataSet ds = new DataSet(); 
 da.Fill(ds); 
 return ds; } 
11/21/2021 
47 
11/21/2021 
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 
OleDbDataAdapter class. 
OleDbDataAdapter da = new OleDbDataAdapter (cmd); 
 DataSet ds = new DataSet (); 
 da.Fill(ds); 
(với cmd: OleDbCommand (Đã có) ) 
11/21/2021 
49 
Example 
OleDbDataAdapter da; 
da=new OleDbDataAdapter( strSQL,con ); 
DataSet ds =new DataSet(“tblA”); 
da.Fill(ds); 
DataTable dt; 
dt=ds.Tables[“tblA”]; //ds.Tables[0] 
foreach( DataRow dr in dt.Rows ) 
{ 
 varName1 = Convert.ToString( dr[“StudentID”] ); 
 varName2= Convert.ToString( dr[“Name”] ); 
 // process varName1, varName2 
} 
11/21/2021 
50 
Khai báo chuỗi kết nối trong file Web.Config : 
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 
11/21/2021 
51 
Truy xuất chuỗi kết nối tại trang bất kỳ 
string strcon; strcon= ConfigurationManager .AppSettings[ "ConnectionString" ]; 
con= new OleDbConnection (strcon); 
con.ConnectionString=strcon; 
con.Open(); 

File đính kèm:

  • pptlap_trinh_ung_dung_web_chuong_v_ado_net.ppt