Chương 7     ADO.NET - II
Mục tiêu    Hiểu kết buộc dữ liệu    Repeater control    DataList control    Cập nhật dữ liệu qua form    Làm việc vớ...
Data Binding (kết buộc dữ liệu)    Kết buộc dữ liệu là tiến trình liên kết dữ liệu lấy được vào     điều khiển để hiển th...
Thuộc tínhASP.NET cho phép các nhà phát triển kết buộc dữ liệu đến các biến public, thuộctính của trang hay thậm chí thuộc...
Thuộc tính<asp:textbox id = "txtControl" AutoPostback="true" runat="server" /><br> <br>              <asp:label id = "lblC...
Biểu thức và phương thức<%@ Import Namespace="System.Data" %><html><title>DataBinding Expressions</title>       <script la...
Biểu thức và phương thức     for (int i=0;i<=5;i++)     {            mydr = mydt.NewRow();            mydr[0] = i;        ...
Biểu thức và phương thức   int Cube(int num)      {       int ans = num*num*num;       return ans;      }   </script>   <f...
Biểu thức và phương thức</ItemTemplate>       </asp:DataList>       </form></html>
Phương thức DataBinder.Eval()Phương thức này dùng để đánh giá biểu thức kết buộc dữ liệu ở thờigian thực thi và định dạng ...
RepeaterLà một container control, dùng để hiển thị danh sách các dữ liệu theo một mẫuđịnh dạng nào đó cho từng mục dữ liệu...
Repeater Ví dụ<%@ Import Namespace="System.Data" %><html>   <title>Repeater Control</title>   <head>       <script languag...
Repeater Ví dụ       mydt.Columns.Add(new DataColumn ("Squares",typeof(Int32)));       mydt.Columns.Add(new DataColumn ("C...
Repeater Ví dụ    }}    </script>    </head>    <body>    <form runat=server>    <b>Repeater1:</b>    <p>    <asp:Repeater...
Repeater Ví dụ   </HeaderTemplate>    <ItemTemplate>    <tr>       <td> <%# DataBinder.Eval (Container.DataItem,"Numbers")...
Repeater Ví dụ      <b>Repeater2:</b>      <p>      <asp:Repeater id=Repeater2 runat="server">      <HeaderTemplate>      ...
Repeater Output       </form>    </body></html>
DataListCho phép người dùng chỉ ra luồng dữ liệu                  ItemTemplate    T             AlternatingItemTemplate   ...
DataList – Ví dụ<%@ Import Namespace="System.Data" %><html>   <title>DataList Control</title>   <head>     <script languag...
DataList Ví dụ   mydt.Columns.Add(new DataColumn("Squares",typeof(Int32)));     mydt.Columns.Add(new DataColumn("Cubes",ty...
DataList Ví dụ  </head>  <body>  <form runat=server>  <asp:DataList id="dlMyList" RepeatDirection="Horizontal"RepeatColumn...
DataList Kết xuất   </AlternatingItemTemplate>   </asp:DataList>   </form> </body></html>
Quản lý dữ liệu trongASP.NET  Insert                Update             DATA  Delete                Select
Chèn dữ liệuĐ ể chèn d ữ li ệ u 1.                    :    Nối kết CSDL                    2. Tạo lệnh chèn trong CSDL    ...
Chèn dữ liệu<%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.SqlClient" %><html>     <title>Insertin...
Chèn dữ liệu  public void AddPublisher(Object sender, EventArgs e)  {        string strInsert = "insert into publishers ( ...
Chèn dữ liệu  mySqlCom.Parameters.Add(new SqlParameter("@state",SqlDbType.Char, 2));     mySqlCom.Parameters ["@state"]. V...
Chèn dữ liệu       BindGrid();         }         public void BindGrid()        {       SqlDataAdapter mySqlda = new SqlDat...
Chèn dữ liệu      Publisher Id should start with 99 and contain 4digits<br><br>      Pubisher ID: &nbsp&nbsp&nbsp&nbsp &nb...
Chèn dữ liệu       <span id="Message" MaintainState="false" style="font:arial 11pt;" runat="server"/>       <br>       <as...
Cập nhật dữ liệu   Một cách để trình bày giao tiếp cho cập nhật dữ liệu là    cung cấp một tập dữ liệu đến người dùng và ...
Cập nhật dữ liệu    EditCommandColumn có thể thêm vào DataGrid     như sau: <asp:datagrid id="dbgMyGrid" runat="server" D...
Cập nhật dữ liệu    EditItemIndex dùng để xác định vị trí của hàng     được cập nh    Sau khi giá trị hàng được gán cho ...
Cập nhật dữ liệuLấy khóa chính của hàng được chọn cập nhật mySqlCmd.Parameters ["@pubid"].Value = dbgMyGrid.DataKeys [(int...
Cập nhật dữ liệu<%@ Import Namespace="System.Data.SqlClient" %><%@ Import Namespace="System.Data" %><HTML>   <title>Updati...
Cập nhật dữ liệupublic void dbgMyGrid_Edit(Object sender,DataGridCommandEventArgs e)   {        dbgMyGrid.Columns[0].Heade...
Cập nhật dữ liệu{   dbgMyGrid.Columns[0].HeaderText="Update";   string strUpdate = "UPDATE Publishers SET pub_id = @pubid,...
Cập nhật dữ liệu   mySqlCmd.Parameters ["@pubid"]. Value =dbgMyGrid.DataKeys[(int)e.Item.ItemIndex];      mySqlCmd.Paramet...
Cập nhật dữ liệu    try    {       mySqlCmd.ExecuteNonQuery();       lblMessage.Text = "<b>Record Updated</b><br>" ;      ...
Cập nhật dữ liệu   mySqlCon.Close();    BindGrid();  }  public void BindGrid()  {      SqlDataAdapter mySqlda = new SqlDat...
Cập nhật dữ liệu <h4><asp:label id="lblMessage" runat="server"> </asp:label></h4><br>  <ASP:Datagrid id="dbgMyGrid" runat=...
Cập nhật dữ liệu
Xóa dữ liệu   OnDeleteCommand thực hiện nhiệm vụ xóa hàng dữ    liệu được chọn<asp:DataGrid id="dbgMyGrid" runat="server"...
Xóa dự liệu<%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.SqlClient" %><html>   <title>Deleting Da...
Deleting Data Example   Contd…     public void dbgMyGrid_Delete(Object sender,DataGridCommandEventArgs e)     {       stri...
Cập nhật dữ liệu     catch (SqlException)     {       Message.InnerHtml = "ERROR: Could not delete record";       Message....
Cập nhật dữ liệu   dbgMyGrid.DataBind();   }     </script>  <body>      <form runat="server" ID="Form1">      <span id="Me...
Cập nhật dữ liệu  </body></html>
Quản lý dữ liệu XMLSchema   <rootelement xmlns=” x-         schema:scheduledSchema.xsl”> 1       Mở tập tin     <rooteleme...
Quản lý dữ liệu XML 4   Kết buộc dự liệu     DataView mySource = new DataView(myds.Tables[0]);     DataGrid1.DataSource = ...
XML Data in a DataGrid    FileStream myfs = new FileStream(Server.MapPath("xmldatagrid.xml"),FileMode.Open, FileAccess.Rea...
Hiển thị dữ liệu trong DataGrid   </h3>   <ASP:DataGrid id="dbgMyGrid" runat="server" />   </body></html>
Upcoming SlideShare
Loading in …5
×

Ung dung web chuong 7

374 views
307 views

Published on

Published in: Education, Technology, Sports
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
374
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ung dung web chuong 7

  1. 1. Chương 7 ADO.NET - II
  2. 2. Mục tiêu  Hiểu kết buộc dữ liệu  Repeater control  DataList control  Cập nhật dữ liệu qua form  Làm việc với dữ liệu XML
  3. 3. Data Binding (kết buộc dữ liệu)  Kết buộc dữ liệu là tiến trình liên kết dữ liệu lấy được vào điều khiển để hiển thị  Dữ liệu có thể kết buộc đến tất cả các điều khiển dùng biểu thức kết buộc dữ liệu được đặt giữa thể <%#......%>  Dữ liệu được kết buộc đến điều khiển bất cứ lúc nào phương thức DataBind() được gọi  Kết buộc dữ liệu có thể thực hiện trên các kiểu dữ liệu khác nhau như:  Các thuộc tính  Collections  Biểu thức  Kết quả của lời gọi hàm
  4. 4. Thuộc tínhASP.NET cho phép các nhà phát triển kết buộc dữ liệu đến các biến public, thuộctính của trang hay thậm chí thuộc tính của các điều khiển khác <html> <title>DataBinding </title> <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { Page.DataBind(); } </script> <form runat=server> <center><b><u> DataBinding</center></b></u><br> Enter a string and press tab <br><br>
  5. 5. Thuộc tính<asp:textbox id = "txtControl" AutoPostback="true" runat="server" /><br> <br> <asp:label id = "lblControl" text = <%#txtControl.Text%> runat = "server" /><br><br> </form></html>
  6. 6. Biểu thức và phương thức<%@ Import Namespace="System.Data" %><html><title>DataBinding Expressions</title> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs E) { Response.Write("<center><b><u>DataBindingExpressions</center></b></u><br>"); if(!IsPostBack) { DataTable mydt = new DataTable(); DataRow mydr; mydt.Columns.Add(new DataColumn ("Numbers",typeof(Int32)));
  7. 7. Biểu thức và phương thức for (int i=0;i<=5;i++) { mydr = mydt.NewRow(); mydr[0] = i; mydt.Rows.Add(mydr); } dlMyList.DataSource = mydt; dlMyList.DataBind(); } } int Square(int num){ int ans = num* num; return ans;}
  8. 8. Biểu thức và phương thức int Cube(int num) { int ans = num*num*num; return ans; } </script> <form runat=server> <asp:DataList id = "dlMyList" runat = "server"> <ItemTemplate> Number : <%# ((DataRowView)Container.DataItem)["Numbers"] %> Square : <%# Square ((int) ((DataRowView)Container.DataItem) ["Numbers"]) %> Cube : <%# Cube ((int) ((DataRowView)Container.DataItem) ["Numbers"]) %>
  9. 9. Biểu thức và phương thức</ItemTemplate> </asp:DataList> </form></html>
  10. 10. Phương thức DataBinder.Eval()Phương thức này dùng để đánh giá biểu thức kết buộc dữ liệu ở thờigian thực thi và định dạng kết xuất được hiển thị trên trình duyệt. A r Tên chứa mục dữ liệu g u m Tên trường e n t Định dạng chuỗi s Example: <%# DataBinder.Eval(Container.DataItem,"max_lvl","{0:c}") %>
  11. 11. RepeaterLà một container control, dùng để hiển thị danh sách các dữ liệu theo một mẫuđịnh dạng nào đó cho từng mục dữ liệu.Mẫu định dạng (template) là một tập các phần tử HTML hay các điều khiểndùng để định dạng hiển thị của điều khiển T ItemTemplate e m AlternatingItemTemplate p l HeaderTemplate a t FooterTemplate e s SeparatorTemplate
  12. 12. Repeater Ví dụ<%@ Import Namespace="System.Data" %><html> <title>Repeater Control</title> <head> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs e) { Response.Write("<center><b><u>Repeater</center> </b></u><br>"); if (!IsPostBack) { DataTable mydt = new DataTable(); DataRow mydr; mydt.Columns.Add(new DataColumn ("Numbers",typeof(Int32)));
  13. 13. Repeater Ví dụ mydt.Columns.Add(new DataColumn ("Squares",typeof(Int32))); mydt.Columns.Add(new DataColumn ("Cubes",typeof(Int32))); for (int i=0;i<=2;i++) { mydr = mydt.NewRow(); mydr[0] = i; mydr[1] = i*i; mydr[2] = i*i*i; mydt.Rows.Add(mydr); } Repeater1.DataSource = mydt; Repeater1.DataBind(); Repeater2.DataSource = mydt; Repeater2.DataBind();
  14. 14. Repeater Ví dụ }} </script> </head> <body> <form runat=server> <b>Repeater1:</b> <p> <asp:Repeater id=Repeater1 runat="server"> <HeaderTemplate> <table border=1> <tr> <td><b>Number</b></td> <td><b>Square</b></td> <td><b>Cube</b></td> </tr>
  15. 15. Repeater Ví dụ </HeaderTemplate> <ItemTemplate> <tr> <td> <%# DataBinder.Eval (Container.DataItem,"Numbers") %> </td> <td> <%# DataBinder.Eval (Container.DataItem,"Squares") %> </td> <td> <%# DataBinder.Eval(Container.DataItem, "Cubes")%> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> <p>
  16. 16. Repeater Ví dụ <b>Repeater2:</b> <p> <asp:Repeater id=Repeater2 runat="server"> <HeaderTemplate> Number (Square) [Cube] : </HeaderTemplate> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Numbers")%> (<%# DataBinder.Eval(Container.DataItem,"Squares") %>) [<%# DataBinder.Eval(Container.DataItem, "Cubes")%>] </ItemTemplate> <SeparatorTemplate>, </SeparatorTemplate> </asp:Repeater>
  17. 17. Repeater Output </form> </body></html>
  18. 18. DataListCho phép người dùng chỉ ra luồng dữ liệu ItemTemplate T AlternatingItemTemplate e m SelectedItemTemplate p EditItemTemplate l a HeaderTemplate t e FooterTemplate s SeparatorTemplate
  19. 19. DataList – Ví dụ<%@ Import Namespace="System.Data" %><html> <title>DataList Control</title> <head> <script language="C#" runat="server"> void Page_Load(Object Sender, EventArgs e) { Response.Write("<center><b><u>Data List withAlternating Columns</center></b></u><br>"); if (!IsPostBack) { DataTable mydt = new DataTable(); DataRow mydr; mydt.Columns.Add(new DataColumn ("Numbers",typeof(Int32)));
  20. 20. DataList Ví dụ mydt.Columns.Add(new DataColumn("Squares",typeof(Int32))); mydt.Columns.Add(new DataColumn("Cubes",typeof(Int32))); for (int i=0;i<30;i++) { mydr = mydt.NewRow(); mydr[0] = i; mydr[1] = i*i; mydr[2] = i*i*i; mydt.Rows.Add(mydr); } dlMyList.DataSource = mydt; dlMyList.DataBind(); } } </script>
  21. 21. DataList Ví dụ </head> <body> <form runat=server> <asp:DataList id="dlMyList" RepeatDirection="Horizontal"RepeatColumns="10" runat="server"> <ItemTemplate> <%# DataBinder.Eval(Container.DataItem, "Numbers") %><br> <%# DataBinder.Eval(Container.DataItem, "Squares") %><br> <%# DataBinder.Eval(Container.DataItem, "Cubes") %><br> </ItemTemplate> <AlternatingItemTemplate> <i><b><%# DataBinder.Eval(Container.DataItem, "Numbers")%></b> <i><br> <i><b><%# DataBinder.Eval(Container.DataItem, "Squares")%><b><i><br><i><b><%# DataBinder.Eval(Container.DataItem, "Cubes")%><b><i><br>
  22. 22. DataList Kết xuất </AlternatingItemTemplate> </asp:DataList> </form> </body></html>
  23. 23. Quản lý dữ liệu trongASP.NET Insert Update DATA Delete Select
  24. 24. Chèn dữ liệuĐ ể chèn d ữ li ệ u 1. : Nối kết CSDL 2. Tạo lệnh chèn trong CSDL Thiết lập nối kết CSDLmySqlCon = new SqlConnection ("server=SQLDB; uid= sa; pwd=password; database=pubs"); Chèn dữ liệu qua đối tượng commandstring myinsertCmd = "insert into publishers ( pub_id,pub_name, city, state, country ) values (@pubid, @pubname,@city, @state, @country)";SqlCommand mySqlCom = new SqlCommand(myinsertCmd,mySqlCon); Tạo một tham sốSqlCom.Parameters.Add(new SqlParameter("@pubid",SqlDbType.SmallInt, 2));
  25. 25. Chèn dữ liệu<%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.SqlClient" %><html> <title>Inserting Data in a Database</title> <script language="C#" runat="server" Debug="true"> SqlConnection mySqlCon; protected void Page_Load(Object Src, EventArgs e) { mySqlCon = new SqlConnection("server=SQLDB;uid=sa;pwd=password; database=pubs"); if(!IsPostBack) BindGrid(); }
  26. 26. Chèn dữ liệu public void AddPublisher(Object sender, EventArgs e) { string strInsert = "insert into publishers ( pub_id,pub_name, city, state, country ) values (@pubid, @pubname,@city, @state, @country)"; SqlCommand mySqlCom = new SqlCommand(strInsert,mySqlCon); mySqlCom.Parameters.Add(new SqlParameter ("@pubid",SqlDbType.Char, 4)); mySqlCom.Parameters ["@pubid"]. Value = txtPub_Id.Text; mySqlCom.Parameters.Add(new SqlParameter ("@pubname",SqlDbType.VarChar, 40)); mySqlCom.Parameters ["@pubname"]. Value = txtPub_Name.Text; mySqlCom.Parameters.Add(new SqlParameter ("@city",SqlDbType.VarChar, 20)); mySqlCom.Parameters["@city"].Value = txtCity.Text;
  27. 27. Chèn dữ liệu mySqlCom.Parameters.Add(new SqlParameter("@state",SqlDbType.Char, 2)); mySqlCom.Parameters ["@state"]. Value = txtState.Text; mySqlCom.Parameters.Add(new SqlParameter ("@country",SqlDbType.VarChar, 30)); mySqlCom.Parameters ["@country"].Value =txtCountry.Text; mySqlCom.Connection.Open(); mySqlCom.ExecuteNonQuery(); Message.InnerHtml = "<b>Record Added</b><br>"; mySqlCom.Connection.Close(); txtPub_Id.Text = ""; txtPub_Name.Text = ""; txtCity.Text = ""; txtState.Text = ""; txtCountry.Text = "";
  28. 28. Chèn dữ liệu BindGrid(); } public void BindGrid() { SqlDataAdapter mySqlda = new SqlDataAdapter ("select* from publishers where pub_id like 99%", mySqlCon); DataSet myds = new DataSet(); mySqlda.Fill (myds, "publishers"); dbgMyGrid.DataSource = myds.Tables ["publishers"].DefaultView; dbgMyGrid.DataBind(); } </script> <form runat="server"> <h2>Add a New Publisher:</h2> <br>
  29. 29. Chèn dữ liệu Publisher Id should start with 99 and contain 4digits<br><br> Pubisher ID: &nbsp&nbsp&nbsp&nbsp &nbsp&nbsp&nbsp <asp:textbox id="txtPub_Id" runat="server"/> Name: &nbsp&nbsp <asp:textbox id="txtPub_Name" runat="server"/> City: &nbsp <asp:textbox id="txtCity" runat="server"/> <br><br> State: &nbsp <asp:textbox id="txtState" runat="server"/> Country: &nbsp <asp:textbox id="txtCountry" runat="server"/> <br><br> &nbsp &nbsp &nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <asp:button id="btnSubmit" Text="Submit"OnClick="AddPublisher" runat="server"/><br>
  30. 30. Chèn dữ liệu <span id="Message" MaintainState="false" style="font:arial 11pt;" runat="server"/> <br> <asp:DataGrid id="dbgMyGrid" runat= "server"/> </form> </body></html>
  31. 31. Cập nhật dữ liệu Một cách để trình bày giao tiếp cho cập nhật dữ liệu là cung cấp một tập dữ liệu đến người dùng và cho phép người dùng chọn hàng để cập nhật DataGrid có thể được dùng để hiển thị tất cả dữ liệu cho người dùng, và người dùng chọn hàng để cập nhật Người dùng có thể chọn hàng để cập nhật dùng EditCommandColumn trong DataGrid EditCommandColumn cung cấp liên kết cho 3 sự kiện:  Edit Command  Update Command  Cancel Command
  32. 32. Cập nhật dữ liệu  EditCommandColumn có thể thêm vào DataGrid như sau: <asp:datagrid id="dbgMyGrid" runat="server" DataKeyField="pub_id" OnUpdateCommand="dbgMyGrid_Update" OnCancelCommand="dbgMyGrid_Cancel" OnEditCommand="dbgMyGrid_Edit"> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" /> </Columns> </asp:datagrid>Sự kiện có thể được thực hiện khi người dùng chọn lệnhtrong EditCommandColumn
  33. 33. Cập nhật dữ liệu  EditItemIndex dùng để xác định vị trí của hàng được cập nh  Sau khi giá trị hàng được gán cho EditItemIndex, hàng có thể được biên tập  Ví dụpublic void dbgMyGrid_Edit(Object sender,DataGridCommandEventArgs e){ dbgMyGrid.EditItemIndex = (int)e.Item.ItemIndex;}
  34. 34. Cập nhật dữ liệuLấy khóa chính của hàng được chọn cập nhật mySqlCmd.Parameters ["@pubid"].Value = dbgMyGrid.DataKeys [(int)e.Item.ItemIndex];Gán các giá trị thay đổi đến hàng qua các tham số mySqlCmd.Parameters ["@pubname"].Value = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
  35. 35. Cập nhật dữ liệu<%@ Import Namespace="System.Data.SqlClient" %><%@ Import Namespace="System.Data" %><HTML> <title>Updating Data in a Database</title> <script language="C#" runat="server"> SqlConnection mySqlCon; protected void Page_Load(Object Src, EventArgs e) { Response.Write("<center><b><u>UpdatingData</center></b></u><br>"); mySqlCon = new SqlConnection ("server=SQLDB; uid=sa;pwd=password;database=pubs"); if(!IsPostBack) BindGrid(); }
  36. 36. Cập nhật dữ liệupublic void dbgMyGrid_Edit(Object sender,DataGridCommandEventArgs e) { dbgMyGrid.Columns[0].HeaderText="Edit"; dbgMyGrid.EditItemIndex = (int)e.Item.ItemIndex; BindGrid(); } public void dbgMyGrid_Cancel(Object sender,DataGridCommandEventArgs e) { dbgMyGrid.Columns[0].HeaderText="Cancel"; dbgMyGrid.EditItemIndex = -1; BindGrid(); } public void dbgMyGrid_Update(Object sender,DataGridCommandEventArgs e
  37. 37. Cập nhật dữ liệu{ dbgMyGrid.Columns[0].HeaderText="Update"; string strUpdate = "UPDATE Publishers SET pub_id = @pubid,pub_name = @pubname, city = @city, state = @state, country =@country WHERE pub_id = @pubid"; SqlCommand mySqlCmd = new SqlCommand(strUpdate,mySqlCon); mySqlCmd.Parameters.Add(new SqlParameter("@pubid",SqlDbType.Char, 4)); mySqlCmd.Parameters.Add(new SqlParameter ("@pubname",SqlDbType.VarChar, 40)); mySqlCmd.Parameters.Add(new SqlParameter ("@city",SqlDbType.VarChar, 20)); mySqlCmd.Parameters.Add(new SqlParameter("@state",SqlDbType.Char, 2)); mySqlCmd.Parameters.Add(new SqlParameter("@country",SqlDbType.VarChar, 30));
  38. 38. Cập nhật dữ liệu mySqlCmd.Parameters ["@pubid"]. Value =dbgMyGrid.DataKeys[(int)e.Item.ItemIndex]; mySqlCmd.Parameters["@pubname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; mySqlCmd.Parameters ["@city"]. Value =((TextBox)e.Item.Cells[3].Controls[0]).Text; mySqlCmd.Parameters ["@state"].Value =((TextBox)e.Item.Cells[4].Controls[0]).Text; mySqlCmd.Parameters ["@country"].Value =((TextBox)e.Item.Cells[5].Controls[0]).Text; mySqlCon.Open();
  39. 39. Cập nhật dữ liệu try { mySqlCmd.ExecuteNonQuery(); lblMessage.Text = "<b>Record Updated</b><br>" ; dbgMyGrid.EditItemIndex = -1; } catch(SqlException exc) { if (exc.Number == 2627) lblMessage.Text = "ERROR: A record alreadyexists with the same primary key"; else lblMessage.Text = exc.ToString() + "ERROR:Could not update record, please ensure the fields arecorrectly filled out"; }
  40. 40. Cập nhật dữ liệu mySqlCon.Close(); BindGrid(); } public void BindGrid() { SqlDataAdapter mySqlda = new SqlDataAdapter ("select* from publishers", mySqlCon); DataSet myds = new DataSet(); mySqlda.Fill(myds, "publishers"); dbgMyGrid.DataSource = myds.Tables ["publishers"].DefaultView; dbgMyGrid.DataBind(); } </script> <body> <form id="Form1" runat="server">
  41. 41. Cập nhật dữ liệu <h4><asp:label id="lblMessage" runat="server"> </asp:label></h4><br> <ASP:Datagrid id="dbgMyGrid" runat="server"DataKeyField="pub_id" OnUpdateCommand="dbgMyGrid_Update"OnCancelCommand ="dbgMyGrid_Cancel" OnEditCommand="dbgMyGrid_Edit"> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" /> </Columns> </ASP:Datagrid></form> </body></HTML>
  42. 42. Cập nhật dữ liệu
  43. 43. Xóa dữ liệu OnDeleteCommand thực hiện nhiệm vụ xóa hàng dữ liệu được chọn<asp:DataGrid id="dbgMyGrid" runat="server" DataKeyField="pub_id"OnDeleteCommand=" dbgMyGrid_Delete"> <Columns> <asp:ButtonColumn Text="Delete Publisher"CommandName="Delete" /> </Columns></asp:DataGrid>
  44. 44. Xóa dự liệu<%@ Import Namespace="System.Data" %><%@ Import Namespace="System.Data.SqlClient" %><html> <title>Deleting Data in a Database</title> <script language="C#" runat="server" Debug="true"> SqlConnection mySqlCon; protected void Page_Load(Object sender, EventArgs e) { Response.Write("<center><b><u>DeletingData</center></b></u><br>"); mySqlCon = new SqlConnection ("server=SQLDB; uid =sa;pwd =password; database=pubs"); if (!IsPostBack) BindGrid(); }
  45. 45. Deleting Data Example Contd… public void dbgMyGrid_Delete(Object sender,DataGridCommandEventArgs e) { string strDelete = "DELETE from publishers wherepub_id = @pubid"; SqlCommand mySqlCmd = new SqlCommand(strDelete,mySqlCon); mySqlCmd.Parameters.Add(new SqlParameter ("@pubid",SqlDbType.Char, 4)); mySqlCmd.Parameters["@pubid"].Value =dbgMyGrid.DataKeys [(int)e.Item.ItemIndex]; mySqlCon.Open(); try { mySqlCmd.ExecuteNonQuery(); Message.InnerHtml = "<b>Record Deleted</b><br>"; }
  46. 46. Cập nhật dữ liệu catch (SqlException) { Message.InnerHtml = "ERROR: Could not delete record"; Message.Style ["color"] = "red"; } mySqlCon.Close(); BindGrid(); } public void BindGrid() { SqlDataAdapter mySqlda = new SqlDataAdapter("select *from publishers", mySqlCon); DataSet myds = new DataSet(); mySqlda.Fill(myds, "publishers"); dbgMyGrid.DataSource =myds.Tables ["publishers"].DefaultView;
  47. 47. Cập nhật dữ liệu dbgMyGrid.DataBind(); } </script> <body> <form runat="server" ID="Form1"> <span id="Message" EnableViewState="false"runat="server" /><p> <asp:DataGrid id="dbgMyGrid" runat="server"DataKeyField="pub_id" OnDeleteCommand=" dbgMyGrid_Delete"> <Columns> <asp:ButtonColumn Text="Delete Publisher"CommandName="Delete" /> </Columns> </asp:DataGrid> </form>
  48. 48. Cập nhật dữ liệu </body></html>
  49. 49. Quản lý dữ liệu XMLSchema <rootelement xmlns=” x- schema:scheduledSchema.xsl”> 1 Mở tập tin <rootelement xmlns = "x-schema:scheduledSchema.xsl"> FileStream myfs = new FileStream (Server.MapPath ("xmldatagrid.xml") ,FileMode.Open,FileAccess.Read); 2 Gán streamreader StreamReader myreader = new StreamReader(myfs); Đọc dữ liệu từ một streamreader 3 DataSet myds = new DataSet(); myds.ReadXml(myreader);
  50. 50. Quản lý dữ liệu XML 4 Kết buộc dự liệu DataView mySource = new DataView(myds.Tables[0]); DataGrid1.DataSource = mySource; DataGrid1.DataBind();Ví dụ:<%@ Import Namespace="System.IO" %><%@ Import Namespace="System.Data" %><html><title>XML Data</title> <script language="C#" runat="server"> void Page_Load(Object Src, EventArgs e) { DataSet myds = new DataSet();
  51. 51. XML Data in a DataGrid FileStream myfs = new FileStream(Server.MapPath("xmldatagrid.xml"),FileMode.Open, FileAccess.Read); StreamReader myreader = new StreamReader(myfs); myds.ReadXml(myreader); myfs.Close(); DataView mySource = new DataView(myds.Tables[0]); lblTableName.Text = mySource.Table.TableName; dbgMyGrid.DataSource = mySource; dbgMyGrid.DataBind(); } </script> <body> <h3><font face="Arial">XML Data for Table: <asp:label id="lblTableName" runat= "server"/></font> </h3>
  52. 52. Hiển thị dữ liệu trong DataGrid </h3> <ASP:DataGrid id="dbgMyGrid" runat="server" /> </body></html>

×