Kĩ thuật lập trình - Chương 7: Lập trình web form với ado. net

pdf 58 trang vanle 1660
Bạn đang xem 20 trang mẫu của tài liệu "Kĩ thuật lập trình - Chương 7: Lập trình web form với ado. net", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfki_thuat_lap_trinh_chuong_7_lap_trinh_web_form_voi_ado_net.pdf

Nội dung text: Kĩ thuật lập trình - Chương 7: Lập trình web form với ado. net

  1. Chương 7 Lp Trình Web Form Vi ADO.Net 1. Tng quan v ADO.Net 2. Các đi tưng trong ADO.Net 3. Xây dng lp x lý d liu 4. X lý gi hàng cho website thương mi đin t 11 Written by: Dương Thành Pht
  2. 1. Tng Quan V ADO.Net 1.1 Gii thiu 1.2 Kin trúc ADO .Net 1.3 Minh ha to kt ni CSDL 22 Written by: Dương Thành Pht
  3. 1.1 Gii Thiu Hu ht ng dng windows hay website đu cn cĩ CSDL, đ lưu tr, x lý, tìm kim và báo cáo Khi d liu tr thành trung tâm ca ng dng thì vic cung cp các chc năng ti ngưi dùng ph thuc vào kh năng thao tác d liu, vn đ cn quan tâm là: Lưu d liu tp trung. ðm bo tồn vn d liu. ðm bo kh năng truy xut đng thi. ðm bo thi gian hi đáp ngn. Bo mt d liu. Trao đi d liu gia các h thng khác nhau 33 Written by: Dương Thành Pht
  4. Vn đ này đưc gii quyt da vào kh năng ca các H QTCSDL. .Net truy xut DL qua ADO.NET, đc đim chính ca ADO.NET là:  Kh năng làm vic vi DL khơng kt ni: DL đưc lưu tr trong b nh như mt CSDL thu nh (dataset), nhm tăng tc đ x lý tính tốn và hn ch s dng tài nguyên.  Kh năng x lý d iu chun XML (Cĩ th trao đi gia bt kỳ h thng nào) 44 Written by: Dương Thành Pht
  5. 1.2 Kin Trúc ADO.Net 55 Written by: Dương Thành Pht
  6. Kin trúc ADO.NET cĩ th chia làm 2 phn chính: Managed Provider Component: Bao gm các đi tưng như DataAdapter, DataReader, gi nhim v làm vic trc tip vi d liu như database, file, Content Component: Bao gm các đi tưng như DataSet, DataTable, đi din cho d liu thc s cn làm vic. 66 Written by: Dương Thành Pht
  7.  DataReader: Là đi tưng giúp truy cp d liu nhanh chĩng.  DataSet: Là mt bn sao thu nh ca CSDL trong b nh vi nhiu bng và các mi quan h.  DataAdapter: Là đi tưng kt ni gia DataSet và CSDL, nĩ bao gm 2 đi tưng Connection và Command đ cung cp d liu cho DataSet cũng như cp nht d liu t DataSet xung CSDL. 77 Written by: Dương Thành Pht
  8. 1.3 Minh ha to kt ni CSDL Cơ bn các bưc thc hin vi database Bưc 1: To kt ni Bưc 2: M kt ni d liu Bưc 3: To lnh điu khin truy vn SQL Bưc 4: Thc thi lnh Bưc 5: ðĩng kt ni Bưc 6: in kt qu 88 Written by: Dương Thành Pht
  9. Ví d: using System; using System.Data; using System.Data.SqlClient; public partial class vd1 : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { //Khai báo và khi to bin Connection SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); cnn.Open(); //M kt ni //Command điu khin truy vn sql SqlCommand cmd = cnn.CreateCommand(); cmd.CommandText="select TenKH from Khachhang where MaKH=5"; //ly v chui giá tr trong cơ s d liu string result = (string)cmd.ExecuteScalar(); cnn.Close(); //đĩng kt ni Response.Write(result); //in giá tr ra màn hình } } 99 Written by: Dương Thành Pht
  10. 2. Các đi tưng trong ADO.Net 2.1 Connection 2.2 Command 01 01 Written by: Dương Thành Pht
  11. 2.1 Connection Vai trị ca Connection trong ADO.net là to kt ni gia ng dng vi CSDL Data Provider System.Data.Oledb : S dng vi Access System.Data.SqlCient : S dng vi SQLServer ng vi mi tên min: System.Data.Oledb.OledbConnection System.Data.SqlClient.SqlConnection Và các Data Provider khác: System.data.OcracleClient(Ocracle) MicroSoft.data.Odbc(Thơng qua ODBC ca HðH) Microsoft.Data.Sqlxml (XML trên Sqlserver) 11 11 Written by: Dương Thành Pht
  12. Connection String: Khi thc hin kt ni cn khai báo các thơng tin cho Connection thơng qua thuc tính Connection String. Tùy thuc vào Data Provider: Nu kt ni vi CSDL Access Provider: Khai báo Data Provider ca Access Data Source: Tên tp tin CSDL (.mdb) User ID: Tên ngưi dùng Password : Mt khu 21 21 Written by: Dương Thành Pht
  13. Ví d: To kt ni vi CSDL Access using System; using System.Data; using System.Data.OleDb; public partial class VD2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { String StrCnn="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("~/App_Data/QLBansach.mdb"); OleDbConnection cnn = new OleDbConnection (StrCnn); cnn.Open(); //Truy xut, x lý d liu cnn.Close(); } } 31 31 Written by: Dương Thành Pht
  14. Nu kt ni vi CSDL SQLServer Provider: Khai báo Data Provider ca SQLServer Data Source/Server: Tên Server Initial Catalog/DataBase : Tên CSDL User ID/UID : Tên ngưi dùng Password/ PWD: Mt khu Integrated Security: Cơ ch chng thc đăng nhp true: tài khon Windows; false: Tài khon SqlServer (ví d: sa) 41 41 Written by: Dương Thành Pht
  15. Ví d: To kt ni vi CSDL SQLServer using System; using System.Data; using System.Data.sqlClient; public partial class KetnoiCSDL : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { String StrCnn="Data Source=.; Initial Catalog=QLbansach; User ID=sa;Password=“; SqlConnection cnn = new SqlConnection(StrCnn); cnn.Open(); //Truy xut, x lý d liu cnn.Close(); } } 51 51 Written by: Dương Thành Pht
  16. Các thuc tính Ca Connection DataBase: Tên CSDL DataSource: Tên Server Provider:Tương ng vi Provider ca HQTCSDL State: Tình trng kt ni ca Connection: Broken: Kt ni đã b ngt khi đã kt ni Closed: Kt ni đã đĩng Connecting: ðang kt ni Executing: Kt ni đang thc hin mt lnh Fetching: Kt ni đang truy xut d liu Open: Kt ni đang m 61 61 Written by: Dương Thành Pht
  17. Các phương thc Change Databse: Thay đi DataBase làm vic Close : ðĩng kt ni Dispose: Gii phĩng b nh Open: Thc hin kt ni 71 71 Written by: Dương Thành Pht
  18. 2.2 Command Sau khi to kt ni CSDL, mi thao tác vi ngun d liu cĩ th đưc thc hin thơng qua Command. Tùy theo loi Connection đi tưng Command thuc tên min: System.Data.OleDb.OleDbCommand System.Data.SqlClient.SqlCommand 81 81 Written by: Dương Thành Pht
  19. To Command Cú pháp: As New ; .Connection= ; .CommandText=Lnh SQL>; Hoc As New ( ); .Connection= ; 91 91 Written by: Dương Thành Pht
  20. Các thuc tính Ca Command CommandText: Lnh SQL hay tên Procedure CommandType: Loi Command Text: (Mc đnh): Là câu lnh SQL StoredProcedure: Tên th tc TableDirect: Tên Connectiona table VD: SqlCommand cmd As SqlCommand = New SqlCommand(); cmd.Connection = cnn; cmd.CommandType = CommandType.Text; cmd.CommandText = "Select * From Khachhang" 02 02 Written by: Dương Thành Pht
  21. Parameters  Lnh SQL trong commandText cĩ th s dng  ? (khi s dng Access)  @Tênbin (khi s dng SQLServer) thay cho tr chưa xác đnh và khi thc hin s dùng đi tưng Parameters đ truyn giá tr vào du ?/ @Tênbin.  Tùy theo Command Parameter s khai báo khác nhau 12 12 Written by: Dương Thành Pht
  22. Access OleDbParameter As New OleDbParameter(); OleDbParameter As New OleDbparameter( ); OleDbParameter As New OleDbParameter ( , ); SQLServe r SqlParameter As New SqlParameter(); SqlParameter As New SqlParameter( ); SqlParameter 22 22 As New SqlParamter( , ); Written by: Dương Thành Pht
  23. Các thuc tính cn chú ý: Direction: Giá tr cho bit lai tham s Input: (mc đnh) Loi tham s đu vào InputOutput: Loi tham s đu vào và ra Output: Loi tham s đu ra ReturnValue: Loi tham s nhn tr tr v OleDbType / SqlDbType: Kiu d liu ca tham s. ParameterName: Tên tham s Value: Giá tr tham s 32 32 Written by: Dương Thành Pht
  24. VD: Khi s dng OleDbCommand cmd.CommandText=”Select * From KhachHang Where MaKH=?”; OleDbParameter Par As OleDbParameter= cmd.CreateParameter(); Par.Value=”KH01”; cmd.Parameters.Add(Par); VD: Khi s dng SqlDbCommand cmd.CommandText=”Select * From KhachHang Where MaKH=@MaKH”; SqlParameter Par As SqlParameter = cmd.CreateParameter(); Par.ParameterName=”@MaKH”; Par.Value=”KH01”; cmd.Parameters.Add(Par); 42 42 Written by: Dương Thành Pht
  25. ðưa tham s vào tp hp Parameters VD: Khi s dng OleDbCommand cmd.CommandText=”Select * From BangDiem Where Masv=? And MaMH=?”; OleDbParameter Par1 As OleDbParameter= cmd.CreateParameters.Add(“Sinhvien”,OleDbType.Char,4); Par1.Value=”SV01” OleDbParameter Par2 As OleDbParameter= cmd.CreateParameters.Add(“Monhoc”,OleDbType.Char,4); Par2.Value=”MH01” 52 52 Written by: Dương Thành Pht
  26. VD: Khi s dng SqlDbCommand cmd.CommandText=”Select * From BangDiem Where Masv=@MaSV and MaMH = @MaMH ”; SqlDbParameter Par1 As SqlDbParameter= cmd.CreateParameters.Add(“@MaSV”,SqlType.Char,4); Par1.Value=”SV01” SqlDbParameter Par2 As SqlDbParameter= cmd.CreateParameters.Add(“@MaMH”,SqlType.Char,4); Par2.Value=”MH01”; 62 62 Written by: Dương Thành Pht
  27. To tham s và đưa vào tp hp Parameters VD: Procedure SpKetQuaThi cn 2 tham s đu vào: @MaSV , @MaMH và tr v ðim thi ca Mơn hc ca sinh viên đĩ. 72 72 Written by: Dương Thành Pht
  28. cmd.CommandText=”spKetQuaThi”; cmd.CommandType=CommandType.StoredProcedure; OleDbParameter ts3 As New OleDbParameter(); ts3.Direction=ParameterDirection.ReturnValue; ts3.OleDbType=OleDn.OleDbType.Int; cmd.parameters.Add(ts3); OleDbParameter ts1 as OleDbParameter= cmd.Parameters.Add(“@MaSV”,OleDbType.Char,4); Ts1.Value=”Sv01”; OleDbParameter ts2 as OleDbParameter= cmd.Parameters.Add(“@MAMH”,OleDbType.Char,4); Ts1.Value=”MH01”; 82 82 Written by: Dương Thành Pht
  29. Thc hin Command:  Phương thc ExecuteReader: Tr v đi tưng DataReader đ đc d liu mi ln mt dịng vi phương thc Read.(DataReader đc d liu trc tip t ngun nên phi duy trì kt ni đn khi đc xong) SqlDataReader As SqlDataReader; = .ExecuteReader; VD: SqlDataReader rd As SqlDataReader; rd = cmd.ExecuteReader;  Phương thc ExcuteNoneQuery: Dùng thc thi các phát biu TSql như: Insert, Update, Delete, Create,  Phương thc ExcuteScalar: Tr v t phát biu SQL dng Select ch cĩ mt ct mt hàng. 92 92 Written by: Dương Thành Pht
  30. Ví d 1: S dng Command vi câu lnh Select try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; //Loi command là câu lnh SQL cmd.CommandText = "Select Count(*) From Chude"; cmd.CommandType = CommandType.Text; //M kt ni và ly d liu cnn.Open(); int count = (int)cmd.ExecuteScalar(); response.write(count.ToString()); cnn.Close(); } catch (Exception) { response.write("Khơng thành cơng!“); } 03 03 Written by: Dương Thành Pht
  31. Ví d 2: S dng Command vi lnh Insert,Update,Delete try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; //Bin Commnad thao tác Insert, Update, Delete cmd.CommandText = "Insert Into Chude(tencd) Values(n'văn hĩa')"; cmd.CommandType = CommandType.Text; cnn.Open(); cmd.ExecuteNonQuery(); response.write("Thành cơng!“); cnn.Close(); } catch (Exception) { response.write(“Tht bi!“); } 13 13 Written by: Dương Thành Pht
  32. Ví d 3: Command vi lnh Insert,Update,Delete + Tham s try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; SqlParameter parTenLinhVuc = new SqlParameter("@TENCHUDE", SqlDbType.NVarChar, 50); cmd.CommandText = "INSERT INTO CHUDE VALUES(@TENCHUDE)"; cmd.CommandType = CommandType.Text; cmd.Parameters.Add(parTenchude); parTenLinhVuc.Value = TextBox1.Text; cnn.Open(); cmd.ExecuteNonQuery(); cnn.Close(); response.write("Thành cơng!“); } catch (Exception) { response.write(“Tht bi!“); 23 23 } Written by: Dương Thành Pht
  33. 2.3 DataReader Là đi tưng truy cp d liu trc tip, s dng con tr phía Server và duy trì kt ni vi Server trong sut quá trình đc d liu, Tùy theo loi Connection mà DataReader thuc tên min: System.Data.OleDb.OleDbDataReader System.Data.SqlClient.SqlDataReader 33 33 Written by: Dương Thành Pht
  34. Các thuc tính  FieldCout: S ct trên dịng hin hành ca DataReader  IsClosed : Cho bit dataReader đã đĩng  Item:Tr ca ct truyn vào. Tham s truyn vào là tên ct hoc s th t tính t 0. 43 43 Written by: Dương Thành Pht
  35. Các phương thc  Close: ðĩng DataReader  GetFieldType: Tr v kiu d liu ca tham s truyn vào.  GetName: Tr v tên ca ct truyn vào  GetValue: Tr v tr ca ct truyn vào  Read: Di chuyn đn dịng k tip và tr v true nu cịn dịng đ di chuyn, ngưc li tr v False. Trong khi dataReader đang m các thao tác d liu trên ngun d liu đu khơng th cho đn khi dataReader đĩng li bng lnh Close 53 53 Written by: Dương Thành Pht
  36. Ví d 1:DataReader vi lnh Insert,Update,Delete +Tham s try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand(); cmd.Connection = cnn; cmd.CommandText = "SELECT * FROM Nhaxuatban"; cmd.CommandType = CommandType.Text; cnn.Open(); IDataReader dr = cmd.ExecuteReader(); String list = ""; while (dr.Read()) { list = list + dr["TenNXB"].ToString().Trim() + " "; } dr.Close(); response.write(list.ToString()); cnn.Close(); } catch (Exception) { response.write(“Tht bi!“); } 63 63 Written by: Dương Thành Pht
  37. Ví d 2: DataReader + gi procedure (VD: Getnhaxuatban) try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("Getnhaxuatban", cnn); cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; cnn.Open(); IDataReader dr = cmd.ExecuteReader(); String list = ""; while (dr.Read()) { list = list + dr["TenNXB"].ToString(); } dr.Close(); response.write(list.ToString()); cnn.Close(); } catch (Exception) { response.write(“Tht bi!“); 73 73 } Written by: Dương Thành Pht
  38. Ví d 2: DataReader + gi procedure cĩ tham s Create Procedure GetchudeByMaCD @Machude char(15) AS Begin Select * From Chude Where MaCD=@Machude End 83 83 Written by: Dương Thành Pht
  39. try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Ctalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("GetchudeByMaCD", cnn); cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; SqlParameter parMALINHVUC = new SqlParameter("@Machude", SqlDbType.NChar, 10); parMAVHUDE.Value = TextBox1.Text; cmd.Parameters.Add(parMACHUDE); cnn.Open(); IDataReader dr = cmd.ExecuteReader(); String list = ""; while (dr.Read()) { list = list + dr["Tenchude"].ToString(); } dr.Close(); response.write(list.ToString()); cnn.Close(); } catch (Exception) { response.write(“Tht bi!“); 93 93 } Written by: Dương Thành Pht
  40. 2.4 DataAdapter  ð ly d liu t ngun d liu v cho ng dng, chúng ta s dng đi tưng DataAdapter. ði tưng này cho phép ta ly cu trúc và d liu ca các bng.  DataAdapter là mt b gm 4 đi tưng:  SelectCommand: Cho phép ly thơng tin t ngun.  InsertCommand: Cho phép thêm d liu vào bng trong ngun.  UpdateCommand: Cho phép điu chnh d liu ca bng trong ngun.  DeleteCommand: Cho phép xĩa d liu ca bng trong ngun. 04 04 Written by: Dương Thành Pht
  41.  To DataAdapter Cú pháp: DataAdapter = New DataAdapter( , ) DataAdapter ch thao tác vi ngun d liu qua đi tưng connection đang kt ni, khi Connection chưa m thì DataAdapter s t đng m kt ni khi cn và đĩng li 14 14 Written by: Dương Thành Pht
  42.  Các thuc tính ca DataAdapter  DeleteCommand: ði tưng Command cha ni dung lnh hy các mu tin trên ngun d liu.  InsertCommand: ði tưng Command cha ni dung lnh thêm các mu tin trên ngun d liu.  SelectCommand: ði tưng Command cha ni dung lnh truy xut các mu tin trên ngun d liu.  UpdateCommand: ði tưng Command cha ni dung lnh sa các mu tin trên ngun d liu. 24 24 Written by: Dương Thành Pht
  43.  Các chc năng ca DataAdapter  Ly d liu t ngun: DataTable: Fill( ) DataSet: Fill( ) D liu ly v DataSet dưi dng các dataTable vi tên là: Table0,Table1, Table2. . . ð d liu vào Datset cho bng DataTable nu chưa cĩ s to mi: Fill( , ) 34 34 Written by: Dương Thành Pht
  44.  Phương thc tr v mu tin ly đưc Dim DS as New Dataset() Dim so As Integer so= DA.Fill(DS,”Sinhvien”)  ð cp nht d liu v ngun Update( ): Cp nht các dịng (Các đi tưng DataRow) vào ngun d liu. Update( ): Cp nht các thay đi trên tt c các bng ca Dataset vào ngun d liu. Update( ): Cp nht tt c các thay đi trên DataTable vào ngun d liu. Update( , ) Cp nht các thay đi trên bng trong Dataset vào ngun. 44 44 Written by: Dương Thành Pht
  45. 2.5 Dataset  Dataset là mt mơ hình CSDL quan h thu nh đáp ng nhu cu ca ng dng.  Dataset cha các bng (DataTable), các quanh (DataRelation) và các ràng buc (constraint)  Dataset thuc tên min: System.Data.Dataset.  Khai báo New System.Data.Dataset() Hoc New System.Data.Dataset( ) 54 54 Written by: Dương Thành Pht
  46.  Các phương thc Thêm mt bng vào Dataset Tables.Add() Mt bng mi t đng đưc to ra vi tên mc đnh Table1, Table2 . . . Tables.Addd( ) Mt bng mi to ra theo đúng Ghi chú: Tên bng cĩ phân bit ch in, thưng Xĩa bng ra khi Dataset Tables.Remove( ) Xĩa bng ra khi tp hp Table. 64 64 Written by: Dương Thành Pht
  47. Kim tra bng cĩ thuc v Dataset Tables.Contains( ) Ly ch s ca bng Tables.IndexOf( ) Ly s bng trong Dataset Tables.Count Ly ra mt bng trong Dataset Tables( ) ð cp nht các thay đi trên Dataset AcceptChanges() 74 74 Written by: Dương Thành Pht
  48. ð hy các thay đi trên Dataset RejectChanges() ð xĩa b mi d liu trên dataSet Clear() ð to mt bn sau ca Dataset Clone() ð xĩa b Dataset Dispone() Gii phĩng mi tài nguyên trên vùng nh Dataset đang s dng. To quan h gia hai bng trong Dataset. Relations.Add( , ) Xĩa quan h gia hai bng trong Dataset. 84 84 Relations.Remove( ) Written by: Dương Thành Pht
  49. 2.6 DataTable D liu các bng trong ngun d liu đưc ly v và đưa vào các DataTable. DataTable thuc tên min : System.Data.dataTable. Cú pháp: New DataTable(); New DataTable( ); DataTable đưc hình thành t DataColumn và DataRow. 94 94 Written by: Dương Thành Pht
  50. Ví d 1: DataAdapter + update d liu try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlDataAdapter da=new SqlDataAdapter("select * from CHUDE", cnn); SqlCommandBuilder commandBuilder = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds); foreach (DataRow row in ds.Tables[0].Rows) if (row["MaCD"]=="1") { row["TENCHUDE"] = "BBB"; } response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString()); GridView1.DataSource = ds.Tables[0]; GridView1.DataBind(); //Khơng s dng SqlCommandBuilder thì khơng th update d liu. da.Update(ds); } catch (Exception) { response.write(“Tht bi!“); 05 05 } Written by: Dương Thành Pht
  51. Ví d 2: DataAdapter + Procedure(GetNXB) try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlDataAdapter da = new SqlDataAdapter("GETNXB", cnn); DataSet ds = new DataSet(); da.Fill(ds); response.write(ds.Tables[0].Rows[2].ItemArray[1].ToString()); GridView2.DataSource = ds.Tables[0]; GridView2.DataBind();} catch (Exception) { response.write(“Tht bi!“); } 15 15 Written by: Dương Thành Pht
  52. Ví d 3: DataAdapter + Procedure tham s (Getchude) try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("Getchude", cnn); cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; SqlParameter parMACD = new SqlParameter("@MACD", SqlDbType.NChar, 10); parMACD.Value = "1"; cmd.Parameters.Add(parMACD); cnn.Open(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds); GridView1.DataSource = ds.Tables[0]; GridView1.DataBind(); cnn.Close(); } catch (Exception) { response.write(“Tht bi!“); 25 25 } Written by: Dương Thành Pht
  53. Ví d 4: DataAdapter + ði s là command try { SqlConnection cnn = new SqlConnection("Data Source=(local); Initial Catalog=QLbansach;User ID=sa;Password="); SqlCommand cmd = new SqlCommand("GETNXB", cnn); cmd.Connection = cnn; cmd.CommandType = CommandType.StoredProcedure; cnn.Open(); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = cmd; //da.InsertCommand = cmd; //da.DeleteCommand = cmd; //da.UpdateCommand = cmd; DataSet ds = new DataSet(); da.Fill(ds); GridView1.DataSource = ds.Tables[0]; GridView1.DataBind(); cnn.Close(); } catch (Exception) { response.write(“Tht bi!“); 35 35 Written} by: Dương Thành Pht
  54. 2.7 ði Tưng Transaction D liu các bng trong ngun d liu đưc ly v và đưa vào các DataTable. DataTable thuc tên min : System.Data.dataTable. Cú pháp: New DataTable(); New DataTable( ); DataTable đưc hình thành t DataColumn và DataRow. 45 45 Written by: Dương Thành Pht
  55. 3. Xây Dng Lp X Lý D Liu  ð các thao tác vi CSDL thun li. Ta nên xây dng lp x lý d liu đm nhn vic kt ni CSDL và các th tc x lý.  Docbang(string LenhSQL): Nhm thc hin câu lnh truy vn SQL đ tr v d liu là 1 DataTable  Thuchienlenh(string LenhSQL): Nhm thc hin câu lnh Insert, Update, Delete đ cp nht d liu cho CSDL.  Thc hin:  To cu hình chui kt ni CSDL trong tp tin Webconfig. (Cĩ th dùng SQLDatasource đ sinh mã) 55 55 Written by: Dương Thành Pht
  56.  To mi lp XLDL.cs: Thêm mi 1 Item Tên lp: XLDL.cs S lưu lp này trong thư mc App_Code 65 65 Written by: Dương Thành Pht
  57. Thc hin mã code cho lp XLDL.cs . . . using System.Data.SqlClient; public class XLDL { static string StrCnn = ConfigurationManager.ConnectionStrings[" KetnoiCSDL "]. ConnectionString.ToString(); public static DataTable Docbang(string LenhSQL) { using (SqlConnection cnn = new SqlConnection(StrCnn)) { SqlDataAdapter bodocghi = new SqlDataAdapter(LenhSQL, cnn); DataTable bang = new DataTable(); bodocghi.Fill(bang); return bang; } } . . . 75 75 Written by: Dương Thành Pht
  58. . . . public static void thuchienlenh(string LenhSQL) { using (SqlConnection cnn = new SqlConnection(StrCnn)) { cnn.Open(); SqlCommand bolenh = new SqlCommand(LenhSQL, cnn); bolenh.ExecuteNonQuery(); cnn.Close(); } } } 85 85 Written by: Dương Thành Pht