Bài 6: Thiết kê và lập trình web với ASP.NET - Kết buộc dữ liệu với ASP.NET

10 560 2
Bài 6: Thiết kê và lập trình web với ASP.NET - Kết buộc dữ liệu với ASP.NET

Đang tải... (xem toàn văn)

Thông tin tài liệu

Lp trình Thit k Web 2 Bà i 6 Bà i 6 KtKt bucbuc dd liuliu vivi ASP .NETASP .NET KtKt bucbuc dd liuliu vivi ASP .NETASP .NET Ths Trn Th Bích Hnh Ths . Trn Th Bích Hnh Khoa CNTT Khoa CNTT –– H.KHTNH.KHTN © 2009 Khoa Công ngh thông tin LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni d ung Ni d ung  Kt buc d liu Kt buc d liu  DataSource Control  DataBound Control  Biu thc kt buc d liu  Tham sô hóa câu truy vn © 2009 Khoa CNTT - HKHTN 2 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni d ung Ni d ung  Kt buc d liu Kt buc d liu  DataSource Control  DataBound Control  Biu thc kt buc d liu  Tham sô hóa câu truy vn © 2009 Khoa CNTT - HKHTN 3 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) KtKt b b  dd lili ii ASP NETASP NET KtKt b u  c b u  c dd li u li uv i v i ASP . NETASP . NET  Kt buc d liu bao gm : Kt buc d liu bao gm : – Ly& Hinth d liu Sp xp phân trang cache d liu – Sp xp , phân trang , cache d liu – Cpnht, thêm, xóa d liu © 2009 Khoa CNTT - HKHTN 4 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) KtKt b b  dd lili ii ASP NETASP NET KtKt b u  c b u  c dd li u li uv i v i ASP . NETASP . NET  Gm 2 loi control h tr vic truy xut d liu : Gm 2 loi control h tr vic truy xut d liu : DataSource control DataBound Control ObjectDataSource SqlDataSource List Controls AdRotator AccessDataSource XmlDataSource SiteMapDataSource DataList DetailsView FormView SiteMapDataSource FormView GridView Menu - Không phát sinh giao din - Phát sinh giao din - Kt buc đn mt Repeater TreeView - Ktni vi CSDL - c ghi d liu - Làm cu ni trung gian gia d li  u controls khác Kt buc đn mt DataSource đ lyd liu thông qua DataSourceID - ThitlpThuc tính khóa thông qua DataKeyNames © 2009 Khoa CNTT - HKHTN 5  thông qua DataKeyNames LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni d ung Ni d ung  Kt buc d liu Kt buc d liu  DataSource Control  DataBound Control  Biu thc kt buc d liu  Tham sô hóa câu truy vn © 2009 Khoa CNTT - HKHTN 6 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) DtS C t lDtS C t l D a t a S ource C on t ro lD a t a S ource C on t ro l DataSource Control Ý ngha s dng SqlDataSource Ktni d liu vi MS SQL Server, OLE DB, ODBC, Oracle, ObjectDataSource Ktni d liu vi các đi tng nghip v, lp đi tng, AccessDataSource Ktni d liu vi MS Access XmlDataSource K tnid liuvitptinXML XmlDataSource K t ni d liu vi tp tin XML SiteMapDataSource Kt ni d liu vi tp tin Sitemap © 2009 Khoa CNTT - HKHTN 7 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) DtS C t lDtS C t l CtiCti D a t a S ource C on t ro lD a t a S ource C on t ro l C onnec ti on C onnec ti on © 2009 Khoa CNTT - HKHTN 8 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) DtS C t lDtS C t l Wb fiWb fi D a t a S ource C on t ro l D a t a S ource C on t ro l –– W e b .con fi g W e b .con fi g <? l i " 1 0 "?> <? xm l vers i on= " 1 . 0 "?> <configuration> < appSettings/> < ti St i > < connec ti on St r i ngs > <add name=“QLTV_CnnString” connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename= |DataDirectory|\QLTV.mdf; Integrated Sec rit Tr e Integrated Sec u rit y= Tr u e ; User Instance=True" providerName="System.Data.SqlClient" /> < add name " AdventureWorks CnnString “ < add name = " AdventureWorks _ CnnString “ connectionString="Data Source=SECURITYAGENT\; Initial Catalog=AdventureWorks; User ID=sa;Password=sa" providerName " System Data SqlClient "/> providerName = " System . Data . SqlClient " /> </connectionStrings> </ configuration> © 2009 Khoa CNTT - HKHTN 9 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) DtS C t lDtS C t l SlDtSSlDtS D a t a S ource C on t ro l D a t a S ource C on t ro l S q lD a t a S ource S q lD a t a S ource <body> <form id="form1" runat="server"> < div> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString=" <%$ ConnectionStrings:AdventureWorks_CnnString %>“ SelectCommand="SELECT [ContactID], [CreditCardID], [ModifiedDate] FROM [ContactCreditCard]"> </ asp:SqlDataSource> </div> </ form> </ body> © 2009 Khoa CNTT - HKHTN 10 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) DtS C t lDtS C t l ThiThi  tt ll  ââ tt  SQLSQL D a t a S ource C on t ro lD a t a S ource C on t ro l –– ThiThi  tt ll  ppc â uc â u t ruy t ruy vv  nn SQLSQL © 2009 Khoa CNTT - HKHTN 11 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni d ung Ni d ung  Kt buc d liu Kt buc d liu  DataSource Control  DataBound Control  Biu thc kt buc d liu  Tham sô hóa câu truy vn © 2009 Khoa CNTT - HKHTN 12 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) DtB dC t lDtB dC t l D a t a B oun d C on t ro lD a t a B oun d C on t ro l DataBound Control Ý ngha s dng GridView Hinth d liu di dng bng, cho phép sp xp trên ct, phân trang d liu, cp nht hoc xóa d liu DetailsView Hinth mt dòng d liutimtthi đim di dng bng , cho phép phân trang, cpnhthocxóad liu FormView Ging DetailsView, hinthi di dng Form, cho phép đnh ngha View t các control kt buc d liu cho các control các control DataList Hinth d liu di dng danh sách. Cho phép thay đi layout hin th nhiuct Repeater Hinth d liudi dng danh sách. Tđnh ngha cách thchinth (Template) © 2009 Khoa CNTT - HKHTN 13 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) GidViGidVi G r id Vi ew G r id Vi ew © 2009 Khoa CNTT - HKHTN 14 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Dtil ViDtil Vi D e t a il s Vi ew D e t a il s Vi ew © 2009 Khoa CNTT - HKHTN 15 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) FViFVi F orm Vi ew F orm Vi ew © 2009 Khoa CNTT - HKHTN 16 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Dt LitDt Lit D a t a Li s tD a t a Li s t © 2009 Khoa CNTT - HKHTN 17 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) RtRt R epea t e rR epea t e r © 2009 Khoa CNTT - HKHTN 18 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Dt B dC t lDt B dC t l TltTlt D a t a B oun d C on t ro l D a t a B oun d C on t ro l T emp l a t es T emp l a t es Templates Ý ngha HeaderTemplate Qui đnh ni dung & layout ca dòng Tiêu đ danh sách ItemTem p late Qui đ  nh n  i dun g & la y out hinthi  các m  cd  li  u p   gy    SelectedItemTemplate Qui đnh ni dung & layout ca mcd liu đang đc chn EditItemTemplate Qui đnh ni dung & layout ca mcd liu đang đc chnh sa(cpnht) AlternatingItem Templa t e Qui đ  nh ni dung & layout ca c a m c d   li  u k ê  ti  p AlternatingItem Templa t e Qui đ  nh ni dung & layout ca c a m c d  li  u k ê ti  p SeperatorTemplate Qui đnh hình thcth hin Phân cách giacácmcd liu liu FooterTemplate Qui đnh ni dung & layout ca dòng cui danh sách  © 2009 Khoa CNTT - HKHTN 19 PagerTemplate Qui đnh hình thcthê  hinchcnng phân trang LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Ví dVí d TltTlt Ví d  Ví d  T emp l a t es T emp l a t es © 2009 Khoa CNTT - HKHTN 20 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Dt B dC t lDt B dC t l ThTh  títí hh D a t a B oun d C on t ro l D a t a B oun d C on t ro l Th u Th u  cc títí n h n h Thuctính Ýngha DataSourceID Thitlp ngund liu DataKe y Names Thitl  p các thu  ctínhkhóatron g bn g d  li  u y  p  g g  AllowSorting Tt/Btchcnng t đng spxp (GridView) AllowPa g in g Tt/B  tchcnn g t  đ  n g p hân tran g gg  g   g p g PageSize Qui đnh Sô dòng d liuhinthi trong 1 trang (GridView) Pa g eIndex Ch  sô tran g hinhành g g ItemIndex Ch sô mcd liu hinhành EditItemIndex Ch sô mcd liu đang đc cpnht AutoGenerateRows/Items T đng phát sinh hình thchinthi tng ng viCSDL AutoGenerateDelete /Edit/ T  đ  ng phá t sinh cá c nú t Delete/Edit/Insert © 2009 Khoa CNTT - HKHTN 21 AutoGenerateDelete /Edit/ InsertButton T   đ  ng phá t sinh cá c nú t Delete/Edit/Insert LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Dt B dC t lDt B dC t l SS kiki  D a t a B oun d C on t ro l D a t a B oun d C on t ro l SS   kiki  nn S kinÝngha Item[Row]Deleting/Editing/Updating /Inserting S kin phát sinh sau khi click các nút Delete/Edit/Update/Insert Item[Row]Deleted/Edited/Updated/ Inserted S kin sau khi thc thi xong thao tác Delete/Edit/Update/Insert d liu RowCancelingEdit S  kinkhiclick nút Cancel  chê đô  Edit (GridView) PageIndexChanged S  ki  n chuy  n trang PageIndexChanged S   ki  n chuy  n trang SelectedIndexChanged S kin chn1 mc/dòng d liu Sorting S kin phát sinh sau khi click chcnng sort Sorted S kin sau khi thc thi xong chcnng sort © 2009 Khoa CNTT - HKHTN 22 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Ví dVí d Ví d  Ví d  protected void GridViewCategories_RowUpdating(object sender, ii Gr i dV i ewUpdateEventArgs e) { // H y b l  nh Update n  u không th a đi  uki  n // H y b l  nh Update n  u không th a đi  u ki  n try { int id = Int32.Parse(e.Keys["CategoryId"].ToString()); object newName = e.NewValues["CategoryName"]; object oldName = e.OldValues["CategoryName“]; if ( ld ) if ( newName = = o ld Name ) throw new Exception(); } catch { }{ e.Cancel = true; } © 2009 Khoa CNTT - HKHTN } 23 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni d ung Ni d ung  Kt buc d liu Kt buc d liu  DataSource Control  DataBound Control  Biu thc kt buc d liu  Tham sô hóa câu truy vn © 2009 Khoa CNTT - HKHTN 24 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) BiBi thth ktkt b b  dd lili Bi u Bi u th c th c ktkt b u  c b u  c dd li u li u  Cú pháp chung cho vic kt buc (Data Binding) cho các Cú pháp chung cho vic kt buc (Data Binding) cho các Data bound control trong ASP.NET : <%# Biuthcktbuc %> <%# Biu thc kt buc %>  Vicktbucd liu trong data source ca các control s đcthchin khi phng thc DataBind() đcgi © 2009 Khoa CNTT - HKHTN 25 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) <html xmlns="http://www.w3.org/1999/xhtml" > < body > < body > <form id="form1" runat="server"> < div> < asp:DataList ID="MyList" runat="server"> <ItemTemplate> Here is a value: <%# Container.DataItem %> </ ItemTemplate> </ asp : DataList > </ asp : DataList > </div> </ form> </ body> </html> © 2009 Khoa CNTT - HKHTN 26 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Bi th ktb  d liBi th ktb  d li Bi u th c kt b u  c d li u Bi u th c kt b u  c d li u  Thuc tính đn Thuc tính đn VD: <%# custID %>  Tp hp VD: <asp:ListBox id="List1“ datasource='<%# myArray %>‘ runat="server">  Biu thc VD: <%# (cst.FirstName + " " + cst.LastName )%>  Ktqu cavicgiphng thc  Kt qu ca vic gi phng thc VD: <%# GetBalance(custID) %> <% # Eval ( CustomerID ) %> © 2009 Khoa CNTT - HKHTN # ( ) <%# Bind(FirstName) %> 27 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Bi th ktb  d liBi th ktb  d li Ví dVí d Bi u th c kt b u  c d li u Bi u th c kt b u  c d li u –– Ví d  Ví d  <body> < form id="form1" runat="server"> i <d i v> < asp:DropDownList ID="StateList" runat="server" AutoPostBack="True"> < asp:ListItem>IN</asp:ListItem> < asp:ListItem>KS</asp:ListItem> i / i <asp:L i stItem>MD< / a sp:L i stItem> < asp:ListItem>MI</asp:ListItem> < asp:ListItem>OR</asp:ListItem> < asp:ListItem>UT</asp:ListItem> / DDLit < / a sp : D rop D own Li s t > Selected State: < asp:Label ID="Label1" tt ' %#SttLitSl tdIt T t%' t ex t = ' < %# St a t e Li s t . S e l ec t e dIt em. T ex t % > ' runat="server" /> </ div> </ form> </ bd > </ b o d y > public partial class _ Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { © 2009 Khoa CNTT - HKHTN 28 Page.DataBind(); } } Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni d ung Ni d ung  Kt buc d liu Kt buc d liu  DataSource Control  DataBound Control  Biu thc kt buc d liu  Tham sô hóa câu truy vn © 2009 Khoa CNTT - HKHTN 29 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) ThTh ôô  hóhó ââ tt  Th am Th am ss ôô hóhó aac â uc â u t ruy t ruy vv  nn  S   d ng đ  i v  i cá c câu truy v  n có đi  u ki  n ho  c c  n S  d ng đ  i v  i cá c câu truy v  n có đi  u ki  n ho  c c  n nhnvàogia tr – Select * from Table Where … – Insert into Table Values(…) – Delete Table Where – Delete Table Where … – Update Table Set … Where …  Cách thchin 1. Tham sô hóa câu truy vn SQL cho DataSource control 2. nh ngha nhóm tham sô tng ng vi câu truy vn 3. nh ngha ngungia tr cho các tham sô © 2009 Khoa CNTT - HKHTN 30 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) BB  11 ThTh  hóhó ââ tt  SQLSQL BB     cc 1 1 –– Th am Th am s  s  hó a hó ac â uc â u t ruy t ruy v  nv  n SQLSQL  SQL Data Provider : @ TenThamSo  SQL Data Provider : @ TenThamSo SELECT * FROM HocSinh WHERE tenhocsinh = @ten INSERT INTO HocSinh(id_hocsinh, tenhocsinh, dtb) VALUES(@id, @ten, @dtb)  Các provider khác : ?  Các provider khác : ? SELECT * FROM HocSinh WHERE tenhocsinh = ? INSERT INTO HocSinh ( id hocsinh , tenhocsinh , dtb ) INSERT INTO HocSinh ( id _ hocsinh , tenhocsinh , dtb ) VALUES(?, ?, ?) © 2009 Khoa CNTT - HKHTN 31 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) BB  22   hh hh hóhó thth ôô  BB     cc 2 2 ––   n h n h ng h ng h aan hó n hó mm th am th am ss ôô  Cá c nhó m tham s ô  tng  ng v  i câu truy v  n Cá c nhó m tham s ô tng  ng v  i câu truy v  n – <SelectParameters> </SelectParameters> < InsertParameters ></ InsertParameters > – < InsertParameters > </ InsertParameters > – <DeleteParameters> </DeleteParameters> UdtP t / UdtP t – < U p d a t e P arame t ers> < / U p d a t e P arame t ers> © 2009 Khoa CNTT - HKHTN 32 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) BB  33   hh hh  ii  t   t  hh thth ôô  BB     cc 3 3 ––   n h n h ng h ng h aa ngungu  nng i ag i a t r  t r  c h oc h o th am th am ss ôô Loithamsô Các Thuctínhquantrng Name, DBT T DBT ype, T ype, DefaultValue, ConvertEmptyStringToNull, Direction <asp:Parameter> Name <asp:ControlParameter> ControlID, PropertyName <asp:FormParameter> FormField <asp:QueryStringParameter> QueryStringField CkiP t CkiN <asp: C oo ki e P arame t er> C oo ki e N ame <asp:SessionParameter> SessionField © 2009 Khoa CNTT - HKHTN 33 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Ví dVí d Ví d  Ví d  <asp:AccessDataSource ID="AccessDataSourceCategory" runat="server" ii Confl i ctDetect i on="CompareAllValues" DataFile="~/App_Data/Products.mdb" SelectCommand =" SELECT * FROM [Categories] “ SelectCommand SELECT FROM [Categories] UpdateCommand="UPDATE [Categories] SET [Name] = ? WHERE [CategoryId] = ? AND [Name] = ?" Old l t tSt i "iil{ 0 }" Old Va l uesParame t erForma tSt r i ng= " or i g i na l_{ 0 }" > <UpdateParameters> <as p :Parameter N ame="Name" T yp e="Strin g " / > p yp g / <asp:Parameter Name="original_CategoryId" Type="Int32" /> <asp:Parameter Name="original_Name" Type="String" /> </UpdateParameters> </asp:AccessDataSource> © 2009 Khoa CNTT - HKHTN 34 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) SS kiki   DtSDtS CtlCtl SS   kiki  nnc  c  aa D a t a S ource D a t a S ource C on t ro lC on t ro l S   ki  n Ý n g ha   g Seleting/Inserting/Deleting/Updating S kin trc khi thchin thao tác select/insert/delete/update Selected/Inserted/Deleted/Updated S kin sau khi thchin thao tác select/insert/delete/update protected void AccessDataSourceCategory_Inserting(object sender, S q lDataSourceStatusEventAr g s e) qg { // Hybo thao tác Insert if ([iukinkhôngtha]) e Cancel true e . Cancel = true ; } © 2009 Khoa CNTT - HKHTN 35 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) Ví dVí d Ví d  Ví d  protected void AccessDataSourceCategory_Inserted(object sender, SqlDataSourceStatusEventArgs e) { //   ó  á á // Ki  m tra n  u c ó l  i p h á t sinh tron g qu á trình thchin insert (ví d trùng khóa) thi xutthôngbáoli Exce p tion ex = e.Exce p tion ; p p ; if (ex != null) { e.ExceptionHandled = true; LabelMessage.Text = ex.Message; } } © 2009 Khoa CNTT - HKHTN 36 Lp trình Thitk Web 2 – Bài 6: Ktbucd liu (DataBinding) TT ktkt T ng T ng ktkt  DataSource Control DataSource Control – Tham sô hóa câu truy vn X   ly  s  ki  n – X  ly s   ki  n  DataBound Control – Paging, Sorting – Edit Item Template – Simple Databinding – Custom Databindin g g © 2009 Khoa CNTT - HKHTN 37 . Controls AdRotator AccessDataSource XmlDataSource SiteMapDataSource DataList DetailsView FormView SiteMapDataSource FormView GridView Menu - Không phát sinh giao din - Phát sinh giao din - Kt buc đn mt Repeater TreeView - Ktni vi CSDL - c ghi d liu - Làm cu ni trung gian gia d. liu thông qua DataSourceID - ThitlpThuc tính khóa thông qua DataKeyNames © 2009 Khoa CNTT - HKHTN 5  thông qua DataKeyNames LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) NidNid Ni . thchinth (Template) © 2009 Khoa CNTT - HKHTN 13 LptrìnhvàThitk Web 2 – Bài 6: Ktbucd liu (DataBinding) GidViGidVi G r id Vi ew G r id Vi ew © 2009 Khoa CNTT - HKHTN 14 Lp trình và Thitk

Ngày đăng: 09/05/2014, 14:41

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan