Vous êtes sur la page 1sur 51

7/6/2014 1

CHNG V:
ADO.NET
L thuyt: 3 tit
Thc hnh 6 tit
ADO.NET

Tng quan v ADO.NET
To kt ni n CSDL.
Cc iu khin rng buc danh sch(List-
Bound)
Hin th DataSet vo iu khin List-
Bound

7/6/2014 2
7/6/2014 3
TNG QUAN V ADO.NET
ADO.NET cung cp kh nng truy cp cc
ngun d liu mt cch nht qun nh
SQL Server, d liu qun l thng qua
OLE DB v XML
ADO.NET bao gm cc trnh cung cp d
liu .NET (.NET data provider) cho vic
kt ni n c s d liu, thc thi mt cu
lnh v truy xut kt qu.
7/6/2014 4
TNG QUAN V ADO.NET
i tng ADO.NET Dataset cng c th
c s dng mt cch c lp vi .NET
data provider qun l d liu thuc
nhng ng dng hoc nhng ngun t
XML
Lp ADO.NET c tm thy trong
namespace System.Data, v c tch
hp vi lp XML c tm thy trong
namespace System.Xml Connection
MhnhitngADO.NET

7/6/2014 5
MhnhitngADO.NET
7/6/2014 6
7/6/2014 7
KHNG GIAN TN
Khng gian tn s dng trong
ADO.NET gm:
System.Data
System.Data.Common
System.Data.SqlClient: dng cho c s d liu
SQL
System.Data.OleDb dng cho c s d liu
access
7/6/2014 8
CU TRC CA ADO.NET
ADO.NET Components c thit k
qun l vic truy cp d liu t ngun d
liu. C 2 thnh phn chnh trong
ADO.NET:
ADO.NET Dataset l thnh phn chnh ca kin
trc kt ni gin on ca ADO.NET. Dataset
bao gm tp hp mt hoc nhiu i tng
DataTable
7/6/2014 9
CU TRC CA ADO.NET
NET Data Provider - mt tp hp cc thnh
phn bao gm cc i tng
Connection: cung cp vic kt ni n CSDL
Command :truy cp cc cu lnh CSDL
DataReader: cung cp mt lung truy xut DL
DataAdapter: cung cp cu ni gia i tng Dataset
v CSDL. DataAdapter s dng i tng Command
thc thi cc cu lnh SQL
7/6/2014 10
CU TRC CA ADO.NET
7/6/2014 11
Cc i tng trong ADO.Net
i tng Connection
Chc nng: Thit lp kt ni n c s d
liu
Kt ni vi c s d liu access:
OleDbConnection con;// Khai bo
String strcon;
strCon ="Provider=Microsoft.Jet.OleDb.4.0;Data Source =";
strCon = strCon + Server.MapPath(".") + "\\sv.mdb";
con = new OleDbConnection(strCon);
con.Open();
7/6/2014 12
SqlConnection con;// Khai bo
String strcon;
strCon=
Server=ServerName;Database=DBName;uid=userName;pwd=password;
con = new SqlConnection(strCon);
con.Open();
Kt ni vi c s d liu Sql:
Ccphngthc:
ExecuteNonQuery():Thcthinhngculnh
nh: INSERT, UPDATE or DELETE
ExecuteScalar():Trvgitrntmttruyv
ndliu.
ExecuteReader():Trvtprecord.

7/6/2014 13
7/6/2014 14
Cc phng thc ca Connection
Phng thc
Open(): m kt ni
Close(): ng kt ni
7/6/2014 15
Cc i tng trong ADO.Net
i tng Command: thc thi cu lnh
SQL hoc mt Stored procedure
Mt Data Command l mt th hin ca
class OleDbCommand hoc class
SqlCommand

7/6/2014 16
Cc i tng trong ADO.Net
Cc phng thc ca DataCommand
Cancel(): Hu b thc thi ca mt
SqlCommand
CreateParameter():To mt th hin mi
cho i tng SqlParameter.

7/6/2014 17
Cc i tng trong ADO.Net
ExecuteNonQuery(): Thc thi mt cu lnh T-SQL
da vo Connection v tr v s mu tin b nh
hng nh UPDATE, INSERT, DELETE.
ExecuteScalar(): Tr v gi tr n (Gi tr c th nh
1 table, 1 record, 1 filed ) t mt truy vn d liu.
ExecuteReader(): Gi CommandText n
Connection v xy dng mt SqlDataReader, tr v
tp cc records
7/6/2014 18
Cc i tng trong ADO.Net
Cc thuc tnh ca Data Command
Connection: Command tham chiu n
mt connection, i tng ny dng
giao tip vi c s d liu, nhn hay tr
v SqlConnection m command s dng
CommandText: nhn hoc tr v cu lnh
T-Sql hay th tc thc thi
7/6/2014 19
Cc i tng trong ADO.Net
CommandTimeout: nhn hay tr v thi
gian ch thc thi
CommandType: nhn/ tr v gi tr cho
bit loi commandtext c gn, cc gi
tr gm StoredProcedure,
TableDirect,Text. Mc nh l Text

OleDbCommand cmd = new OleDbCommand(strsql,con);
(vi strsql l cu truy vn c th )
7/6/2014 20
Cc i tng trong ADO.Net
DataReader: c s dng trong nhng
ng dng web vi nhng thao tc ngn
vi tng yu cu, thng l ch hin
th d liu.
C 2 loi DataReader: OleDbDataReader
v SqlDataReader.
DataReader cung cp cch truy xut d
liu forward-only, read only.
7/6/2014 21
Cc i tng trong ADO.Net
dng SqlDataReader phi khai bo
mt SqlCommand. SqlCommand cung cp
mt phng thc ExecuteReader() m n
tr v mt SqlDataReader khi thi hnh mt
cu lnh SQL hoc mt stored Procedure
7/6/2014 22
Cc i tng 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();
Tng ng
7/6/2014 23
Phng thc ca DataReader
Read(): c ti record cui cng EOF.
NextResult(): di chuyn ti record k tip
c gi tr ca tng field. S dng cu lnh:
DataReader rs;// Khai bo
rs[NameFiled] or rs[index]
Ch : Nh Convert v kiu chui
Example: varName=Convert.ToString(rs[Name])

Cc i tng trong ADO.Net
7/6/2014 24
7/6/2014 25
Tng bc kt ni ADO.Net
s dng DataReader cn phi thc
hin cc bc sau:
To v m kt ni CSDL Connection
To i tng Command
ToDataReader t i tng Command
Gi phng thc ExecuteReader
S dng i tng DataReader
ng i tng DataReader
ng i tng Connection
7/6/2014 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

Tng bc kt ni trong ADO.Net
7/6/2014 27
S dng DataReader cha d liu truy xut c
while(rs.Read())
{
//varName=rs[FieldName];
//process varName according to application
}
Tng bc kt ni trong ADO.Net
7/6/2014 28
Example
Database cha 1 table:
tblCustomer(CustomerID,Name)
Vit kt ni vo database v thc cc cng vic sau:
1) Hin th danh sch Customers dng bng sau:



2) Thm 1 customer
3) Sa i thng tin 1 customer
4) Xa 1 customer
Danh Sach Khach Hang
M khch hng H tn
KH098 Phan Hoai An
7/6/2014 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));
}


}
7/6/2014 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());

7/6/2014 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();

7/6/2014 32
Answer 4)
<%
.
strSQL=update set Name=+varName+ where
CustomerID=+ varID +;
..
cmd.ExecuteNonQuery();
%>
7/6/2014 33
DataTable
DataSet
DataAdapter

Cc i tng trong ADO.Net
7/6/2014 34
DataTable
DataView
DataRowView
DataColumn
DataRow
DataTable


7/6/2014 35
DataTable
DataView
DataView dv=new DataView();
Thuc tnh ca DataView
.Count : Tr v s records c trong the DataView
.RowFilter: Thit lp hoc tr v gi tr lc theo 1 hng bt
k s hin th trn DataView.
.Sort: Sp xp th t ca 1 ct hay nhiu ct trong
DataView.

7/6/2014 36
DataTable
DataView
V d v cc thuc tnh ca DataView
int num;
num=dv.Count;
dv.RowFilter=Expression condition;
dv.RowFilter=FieldNameColumn>=10;
dv.Sort=List FieldName sort ; //ASC, DESC
dv.Sort=FieldName1,FieldName2 DESC;
dv.Sort = "EMpID";
drView = dv.FindRows(EmpIDvalue); //drView is
array
7/6/2014 37
DataTable
DataView
DataView dv=new DataView()
Method of DataView
FindRows: Tr v 1 mng i tng DataRowView m
hng s tm.
DataRowView[] drView;
dv.Sort=FieldName;
drView=dv.FindRows(value)
// Vi value: FieldName

7/6/2014 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];
7/6/2014 39
DataColumn: Trnh by lc ca
mt ct trong mt DataTable. Mi
DataColumn c mt thuc tnh
DataType xc nh kiu d liu
c lu tr trong DataColumn
DataTable
DataColumn objColumn=new DataColumn(ColumnName);
DataTable dt=new DataTable();
Dt.Columns.Add(objColumn);
7/6/2014 40
i tng DataTable
DataRow: trnh by mt dng d liu
trong DataTable
Khi to:
DataRow dr=new DataRow();
dr[i] or dr[FieldName]: //return value
7/6/2014 41
i tng DataTable
Cc thuc tnh- phng thc ca
DataTable
.Columns: tr v cc ct trong Datatable
.Columns.Count: tr v s ct trong bng
.Columns.Add(DataColumn): Thm ct vo bng
.Rows :tr v cc dng, mi dng l mt i tng
datarow
.Rows.Count :tr v s dng trong bng
.Rows.Add(DataRow):thm mt dng vo bng
7/6/2014 42
DataTable
DataTable: L i tng biu din thng tin trong
Dataset.
ColName1 ColName2 . ColNameN
Data11 Data12
Data1N

DataM1 DataM2 . DataMN
DataColumn
DataRow
7/6/2014 43
DataTable
DataTable
DataTable dt=new DataTable();
.Columns:Tr v tp hp cc columns c trong table
dt.


.Rows: Tr v tp hp cc rows c trong table dt.


dt.Columns
dt.Rows
Count
Add(objColumn)
Count
Add(objRow)
7/6/2014 44
DataTable
DataTable
DefaultView: 1 i ng DataView (Dng hin th khc ca
DataTable)
DataTable dt=new DataTable();
Phng thc DataTable
NewRow():To 1 dng mi DataRow
DataRow dr;
dr=dt.NewRow();
7/6/2014 45
DataSet
DataSet bao gm tp cc i tng
DataTable mi DataTable in hnh tng
ng vi mt table hoc l mt view m
ta c th thit lp mi quan h gia chng
thng qua i tng DataRelation.
D liu trong DataSet c th nht qun
bng cch s dng i tng
UniqueConstraint v
ForeignKeyConstraint
7/6/2014 46
DataSet
DataSet
DataSet ds; //Khai bo
DataSet ds=new DataSet();//Khai bo v khi to
.Tables: tr v tt c cc Table cha trong Dataset.
ds.Tables[i] or ds.Tables[tblName] : Tr v i
tng Table th i hoc Table c tn 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; }
7/6/2014 47
7/6/2014 48
DataAdapter
DataAdapter
The DataAdapter : L i tng trung gian gia 1 DataSet
v ngun d liu nhn c, dng lu d liu.
DataAdapter.Fill(ds) : Hin th data ln Dataset ds
OleDbDataAdapter class.
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
(vi cmd: OleDbCommand ( c))
7/6/2014 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
}
7/6/2014 50
Khai bo chui kt ni trong file Web.Config:
<configuration>
<appSettings>
<add key="ConnectionString"
value="Provider=Microsoft.Jet.OleDb.4.0;Data Source
=HOADON.mdb"/>
</appSettings>
<connectionStrings/>
<configuration>
<appSettings/>
<connectionStrings/>
Database c lu trong th mc gc trong Visual Studio.Net:
C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\HOADON.mdb
7/6/2014 51
Truy xut chui kt ni ti trang bt k
string strcon;
strcon=ConfigurationManager.AppSettings["ConnectionString"];
con= new OleDbConnection(strcon);
con.ConnectionString=strcon;
con.Open();

Vous aimerez peut-être aussi