Professional Documents
Culture Documents
MC LC
Kin trc ADO.NET ......................................................................................................... 2 Trnh cung cp d liu ADO.NET ................................................................................... 2 Cc lp thuc SQL Server provider ................................................................................ 3 Lp SqlConnection.......................................................................................................... 3 To i tng SqlConnection ...................................................................................... 3 Lp SqlCommand ........................................................................................................... 4 To i tng SqlCommand ....................................................................................... 4 Cc phng thc SqlCommand .................................................................................. 4 Lp SqlDataReader ........................................................................................................ 5 Cc phng thc SqlDataReader ............................................................................... 5 Cc bc thc hin mt truy vn trong ADO.NET .......................................................... 5 Cc v d ......................................................................................................................... 5 Chn thm mt hng vo vo bng Employees .......................................................... 6 Cp nht mt hng trong bng Employees ................................................................. 7 Xa mt hng trong bng Employees.......................................................................... 8 m tt c hng trong bng Employees...................................................................... 8 Ly tt c hng trong bng Employees ....................................................................... 9 c nhiu tp d liu................................................................................................. 10 M hnh 3 tng (three tier) ............................................................................................. 11 Mc ch .................................................................................................................... 11 V d .............................................................................................................................. 12
.NET Application
OLE DB Provider
Data Source
Oracle Database
Lp SqlConnection
i tng SqlConnection c s dng kt ni ti mt CSDL SQL Server.
To i tng SqlConnection
SqlConnection cnn = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=sa");
Trong : server: l tn ca my tnh ang chy SQL Server. database: l tn c s d liu mun kt ni.
3
Lp SqlCommand
i tng SqlCommand c s dng thc thi mt cu lnh truy vn ti CSDL SQL Server
To i tng SqlCommand
To i tng SqlCommand i din cho mt cu truy vn
SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; SqlCommand cmd = cnn.CreateCommand();
hoc
SqlCommand cmd = cnn.CreateCommand(); cmd.CommandType = CommandType.StoredProcedure; cmd.CommandText = "GetEmployees";
ExecuteScalar()
ExecuteReader()
Lp SqlDataReader
i tng SqlDataReader cho php c d liu tr v t cu lnh SELECT mt cch tun t, mi ln c mt hng
Close()
Cc v d
Cc v d di y thc hin trn bng Employees ca CSDL Northwind Employees
Coumn Name EmployeeID TitleOfCourtesy LastName FirstName HireDate
5
C#
private static int Add(string title, string lastName, string firstName) { // 1. Tao doi tuong SqlConnection // 1.1 Tao chuoi noi string connectionString = @"server=.\sqlexpress;database=northwind;integrated security=true"; // 1.2 Tao doi tuong SqlConnection voi chuoi ket noi o tren using (SqlConnection cnn = new SqlConnection(connectionString)) { // 2. Tao doi tuong SqlCommand SqlCommand cmd = cnn.CreateCommand(); // 2.1 Dai dien cho mot thu tuc cmd.CommandType = CommandType.StoredProcedure; // 2.2 Truyen ten thu tuc ma doi tuong SqlCommand se goi cmd.CommandText = "Employees_Add"; // 3. Truyen cac tham so cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Direction = ParameterDirection.Output; cmd.Parameters.Add("@TitleOfCourtesy", SqlDbType.VarChar, 25).Value = title; cmd.Parameters.Add("@LastName", SqlDbType.VarChar, 20).Value = lastName; cmd.Parameters.Add("@FirstName", SqlDbType.VarChar, 20).Value = firstName; // 4. Mo ket noi cnn.Open(); // 5. Goi ExecuteNonQuery() de thu hien cau truy van // rs chinh la so hang duoc chen them vao bang int rs = cmd.ExecuteNonQuery(); // 6. Xy ly ket qua tra ve if (rs > 0) { // 6.1 Lay gia tri EmployeeID cua hang vua duoc them vao int empID = (int)cmd.Parameters["@EmployeeID"].Value; return empID; } else { Console.WriteLine("Insert fail"); } // 7. Dong ket noi
cnn.Close(); return 0; } }
C#
private static int Update(int empID, string title, string lastName, string firstName) { // 1. Tao doi tuong SqlConnection // 1.1 Tao chuoi noi string connectionString = @"server=.\sqlexpress;database=northwind;integrated security=true"; // 1.2 Tao doi tuong SqlConnection voi chuoi ket noi o tren using (SqlConnection cnn = new SqlConnection(connectionString)) { // 2. Tao doi tuong SqlCommand SqlCommand cmd = cnn.CreateCommand(); // 2.1 Dai dien cho mot thu tuc cmd.CommandType = CommandType.StoredProcedure; // 2.2 Truyen ten thu tuc ma doi tuong SqlCommand se goi cmd.CommandText = "Employees_Update"; // 3. Truyen cac tham so cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = empID; cmd.Parameters.Add("@TitleOfCourtesy", SqlDbType.VarChar, 25).Value = title; cmd.Parameters.Add("@LastName", SqlDbType.VarChar, 20).Value = lastName; cmd.Parameters.Add("@FirstName", SqlDbType.VarChar, 20).Value = firstName; // 4. Mo ket noi cnn.Open(); // 5. Goi ExecuteNonQuery() de thuc hien cau truy van // rs chinh la so hang duoc cap nhat int rs = cmd.ExecuteNonQuery(); // 6. Dong ket noi cnn.Close();
C#
private static int Delete(int empID) { // 1. Tao doi tuong SqlConnection // 1.1 Tao chuoi noi string connectionString = @"server=.\sqlexpress;database=northwind;integrated security=true"; // 1.2 Tao doi tuong SqlConnection voi chuoi ket noi o tren using (SqlConnection cnn = new SqlConnection(connectionString)) { // 2. Tao doi tuong SqlCommand SqlCommand cmd = cnn.CreateCommand(); // 2.1 Dai dien cho mot thu tuc cmd.CommandType = CommandType.StoredProcedure; // 2.2 Truyen ten thu tuc ma doi tuong SqlCommand se goi cmd.CommandText = "Employees_Delete"; // 3. Truyen cac tham so cmd.Parameters.Add("@EmployeeID", SqlDbType.Int).Value = empID; // 4. Mo ket noi cnn.Open(); // 5. Goi ExecuteNonQuery() de goi thu hien cau truy van // rs chinh la so hang bi xoa khoi bang int rs = cmd.ExecuteNonQuery(); // 6. Dong ket noi cnn.Close(); // 7. Tra ve ket qua return rs; } }
C#
public static int Count() { // 1. Tao doi tuong SqlConnection // 1.1 Tao chuoi noi string connectionString = @"server=.\sqlexpress;database=northwind;integrated security=true"; // 1.2 Tao doi tuong SqlConnection voi chuoi ket noi o tren using (SqlConnection cnn = new SqlConnection(connectionString)) { // 2. Tao doi tuong SqlCommand SqlCommand cmd = cnn.CreateCommand(); // 2.1 Dai dien cho mot thu tuc cmd.CommandType = CommandType.StoredProcedure; // 2.2 Truyen ten thu tuc ma doi tuong SqlCommand se goi cmd.CommandText = "Employees_Count"; // 3. Truyen cac tham so // 4. Mo ket noi cnn.Open(); // 5. Goi ExecuteScalar() lay ket qua (cot 1 hang 1) int rs = Convert.ToInt32(cmd.ExecuteScalar()); // 6. Dong ket noi cnn.Close(); // 7. Tra ve ket qua return rs; } }
C#
private static void All() { // 1. Tao doi tuong SqlConnection // 1.1 Tao chuoi noi string connectionString = @"server=.\sqlexpress;database=northwind;integrated security=true"; // 1.2 Tao doi tuong SqlConnection voi chuoi ket noi o tren 9
using (SqlConnection cnn = new SqlConnection(connectionString)) { // 2. Tao doi tuong SqlCommand SqlCommand cmd = cnn.CreateCommand(); // 2.1 Dai dien cho mot thu tuc cmd.CommandType = CommandType.StoredProcedure; // 2.2 Truyen ten thu tuc ma doi tuong SqlCommand se goi cmd.CommandText = "Employees_All"; // 3. Truyen cac tham so // 4. Mo ket noi cnn.Open(); // 5 + 6. Goi ExecuteReader() va doc qua tung hang cua bang ket qua using (IDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { // 6.1 Doc tuan tu tung hang while (dr.Read()) { // 6.2 Xuat du lieu cua hang hien tai Console.WriteLine(String.Format("{0} {1} {2}", dr["EmployeeID"], // lay du lieu cot EmpID dr["LastName"], // lay du lieu cot LastName dr["FirstName"])); // lay du lieu cot FirstName } } // 7. Dong ket noi cnn.Close(); } }
c nhiu tp d liu
Cu lnh SQL to th tc Employees_Multi
CREATE PROCEDURE [Employees_Multi] AS SELECT TOP 5 * FROM Employees SELECT TOP 5 * FROM Customers
C#
public static void ReadMultipleResultSets() { // 1. Tao doi tuong SqlConnection // 1.1 Tao chuoi noi string connectionString = @"server=.\sqlexpress;database=northwind;integrated security=true"; // 1.2 Tao doi tuong SqlConnection voi chuoi ket noi o tren using (SqlConnection cnn = new SqlConnection(connectionString)) { // 2. Tao doi tuong SqlCommand SqlCommand cmd = cnn.CreateCommand();
10
// 2.1 Dai dien cho mot thu tuc cmd.CommandType = CommandType.StoredProcedure; // 2.2 Truyen ten thu tuc ma doi tuong SqlCommand se goi cmd.CommandText = "Employees_Multi"; // 3. Truyen cac tham so // 4. Mo ket noi cnn.Open(); // 5 + 6. Goi ExecuteReader() va doc qua tung hang cua bang ket qua using (IDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { // 6.1 Doc tap du lieu dau tien (Employees) while (dr.Read()) { // 6.1 Xuat du lieu cua hang hien tai Console.WriteLine(String.Format("{0} {1} {2}", dr["EmployeeID"], // lay du lieu cot EmpID dr["LastName"], // lay du lieu cot LastName dr["FirstName"])); // lay du lieu cot FirstName } // 6.2 Doc tap du lieu tiep theo (Customers) dr.NextResult(); while (dr.Read()) { // 6.3 Xuat du lieu cua hang hien tai Console.WriteLine(String.Format("{0} {1} {2}", dr["CustomerID"], // lay du lieu cot CusID dr["CompanyName"], // lay du lieu cot CompanyName dr["ContactName"])); // lay du lieu cot ContactName } } // 7. Dong ket noi cnn.Close(); } }
Mc ch
Pht trin phn mm da trn m hnh 3 tng cho php cc lp trnh vin c th cp nht, thay i chc nng ca mi tng ring bit m khng ph v code ca cc tng khc.
11
Presentation Tier ASP.NET Master Pages ASP.NET Web Forms ASP.NET Web User Controls
Business Tier ASP.NET Master Pages C# Class SQL Server Data Tier ASP.NET Master Pages SQL Server Stored Procedures
V d
Gi s ngi dng s dng trnh duyt v vo trang web bn hng trc tuyn nh hnh di
12
thm mt sn phm vo gi hng thi ngi dng s bm vo nt Add To Cart. Hnh di cho thy lung thng tin chy qua cc tng ca ng dng Ngi dng s dng trnh duyt
Internet
Presentation Tier
Business Tier
Data Tier
1. Ngi dng bm vo nt Add To Cart thm sn phm vo gi hng 2. Tng Presentation chuyn yu cu n tng Business l Ti mun thm sn phm ny vo gi hng 3. Tng Business nhn yu cu v ni tng Data Cp nht gi hng ca ngi dng bng cch thm vo sn phm chn 4. Tng Data cp nht vo CSDL v tr kt qu cho tng Business 5. Tng Business s x l kt qu v tt c li xy ra trong qu trnh cp nht gi hng. Sau , tng Business s tr kt qu m n x l c cho tng Presentation 6. Tng Presentation s to ra giao din gi hng trng thi cp nht 7. Phn giao din s c chuyn thnh HTML v tr v trnh duyt ca ngi dng
14