SlideShare uma empresa Scribd logo
1 de 52
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ới dữ liệu XML
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
Thuộc tính
ASP.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ộc
tí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>
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>
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>DataBinding
Expressions</center></b></u><br>");
          if(!IsPostBack)
          {
              DataTable mydt = new DataTable();
              DataRow mydr;
              mydt.Columns.Add(new DataColumn ("Numbers",
typeof(Int32)));
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;
}
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"]) %>
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ời
gian 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}") %>
Repeater
Là 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ển
dù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
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)));
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();
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>
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>
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>
Repeater Output
       </form>
    </body>
</html>
DataList
Cho 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
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 with
Alternating Columns</center></b></u><br>");
           if (!IsPostBack)
           {
              DataTable mydt = new DataTable();
              DataRow mydr;
              mydt.Columns.Add(new DataColumn ("Numbers",
typeof(Int32)));
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>
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>
DataList Kết xuất
   </AlternatingItemTemplate>
   </asp:DataList>
   </form>
 </body>
</html>
Quản lý dữ liệu trong
ASP.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
    Thiết lập nối kết CSDL

mySqlCon = new SqlConnection ("server=SQLDB; uid= sa; pwd
=password; database=pubs");

    Chèn dữ liệu qua đối tượng command
string 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));
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();
        }
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;
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 = "";
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>
Chèn dữ liệu
      Publisher Id should start with 99 and contain 4
digits<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>
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>
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
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ệnh
trong EditCommandColumn
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;
}
Cập nhật dữ liệu
Lấ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;
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>Updating
Data</center></b></u><br>");
       mySqlCon = new SqlConnection ("server=SQLDB; uid=sa;
pwd=password;database=pubs");
       if(!IsPostBack)
              BindGrid();
   }
Cập nhật dữ liệu
public 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
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));
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();
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 already
exists with the same primary key";
       else
              lblMessage.Text = exc.ToString() + "ERROR:
Could not update record, please ensure the fields are
correctly filled out";
    }
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">
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>
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" DataKeyField="pub_id"
OnDeleteCommand=" dbgMyGrid_Delete">
        <Columns>
               <asp:ButtonColumn Text="Delete Publisher"
CommandName
="Delete" />
        </Columns>
</asp:DataGrid>
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>Deleting
Data</center></b></u><br>");
       mySqlCon = new SqlConnection ("server=SQLDB; uid =sa;
pwd =password; database=pubs");
       if (!IsPostBack)
          BindGrid();
   }
Deleting Data Example
   Contd…
     public void dbgMyGrid_Delete(Object sender,
DataGridCommandEventArgs e)
     {
       string strDelete = "DELETE from publishers where
pub_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>";
        }
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;
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>
Cập nhật dữ liệu
  </body>
</html>
Quản lý dữ liệu XML
Schema   <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);
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();
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>
Hiển thị dữ liệu trong DataGrid
   </h3>
   <ASP:DataGrid id="dbgMyGrid" runat="server" />
   </body>
</html>

Mais conteúdo relacionado

Mais procurados

Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
truong le hung
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
truong le hung
 
5.cach su dung data reader
5.cach su dung data reader5.cach su dung data reader
5.cach su dung data reader
Dao Uit
 

Mais procurados (11)

Cach su dung databinding
Cach su dung databindingCach su dung databinding
Cach su dung databinding
 
04 chuong4-capnhatdulieu-140404115156-phpapp02
04 chuong4-capnhatdulieu-140404115156-phpapp0204 chuong4-capnhatdulieu-140404115156-phpapp02
04 chuong4-capnhatdulieu-140404115156-phpapp02
 
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPTBài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
Bài 4: STORED PROCEDURE & GIAO DỊCH - Giáo trình FPT
 
03 chuong 3 - data sets
03   chuong 3 - data sets03   chuong 3 - data sets
03 chuong 3 - data sets
 
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
Bài 6: Lập trình với CSDL Kiến trúc kết nối & Buộc dữ liệu - Lập trình winfor...
 
04 chuong 4 - cap nhat du lieu
04   chuong 4 - cap nhat du lieu04   chuong 4 - cap nhat du lieu
04 chuong 4 - cap nhat du lieu
 
04 chuong 4 - sap xep, tim kiem, loc du lieu
04   chuong 4 - sap xep, tim kiem, loc du lieu04   chuong 4 - sap xep, tim kiem, loc du lieu
04 chuong 4 - sap xep, tim kiem, loc du lieu
 
Cach su dung data reader
Cach su dung data readerCach su dung data reader
Cach su dung data reader
 
Aspnet 3.5 _02
Aspnet 3.5 _02Aspnet 3.5 _02
Aspnet 3.5 _02
 
5.cach su dung data reader
5.cach su dung data reader5.cach su dung data reader
5.cach su dung data reader
 
Php day4
Php day4Php day4
Php day4
 

Destaque

Adrian's Thankful Journal
Adrian's Thankful JournalAdrian's Thankful Journal
Adrian's Thankful Journal
micklethwait
 
Electrospn 1 ramakrishna-full
Electrospn 1 ramakrishna-fullElectrospn 1 ramakrishna-full
Electrospn 1 ramakrishna-full
miroli
 
Thankful Journals 2014 Emma
Thankful Journals 2014 EmmaThankful Journals 2014 Emma
Thankful Journals 2014 Emma
micklethwait
 
промо калининград сентябрь 2010
промо калининград   сентябрь 2010промо калининград   сентябрь 2010
промо калининград сентябрь 2010
Sokirianskiy&Lazerson School
 
HDFC standard Life
HDFC standard LifeHDFC standard Life
HDFC standard Life
Cherazure
 
Thankful Journal- Riley
Thankful Journal- RileyThankful Journal- Riley
Thankful Journal- Riley
micklethwait
 
CCV Faculty Institute 2010
CCV Faculty Institute 2010CCV Faculty Institute 2010
CCV Faculty Institute 2010
Karen Case
 
Group1 presentation2-droughtv2
Group1 presentation2-droughtv2Group1 presentation2-droughtv2
Group1 presentation2-droughtv2
cookj111
 
Bai iii quy trinh tmdt
Bai iii   quy trinh tmdtBai iii   quy trinh tmdt
Bai iii quy trinh tmdt
Giang Nguyễn
 

Destaque (20)

wisdomOFcrowds
wisdomOFcrowdswisdomOFcrowds
wisdomOFcrowds
 
Adrian's Thankful Journal
Adrian's Thankful JournalAdrian's Thankful Journal
Adrian's Thankful Journal
 
Electrospn 1 ramakrishna-full
Electrospn 1 ramakrishna-fullElectrospn 1 ramakrishna-full
Electrospn 1 ramakrishna-full
 
Thankful Journals 2014 Emma
Thankful Journals 2014 EmmaThankful Journals 2014 Emma
Thankful Journals 2014 Emma
 
Charter Establishing the CCARDESA
Charter Establishing the CCARDESACharter Establishing the CCARDESA
Charter Establishing the CCARDESA
 
Iso 25000 Calidad de software comprobable - Dic. 2015
Iso 25000 Calidad de software comprobable - Dic. 2015 Iso 25000 Calidad de software comprobable - Dic. 2015
Iso 25000 Calidad de software comprobable - Dic. 2015
 
Buy Venapro – External Hemorrhoids Treatment
Buy Venapro – External Hemorrhoids TreatmentBuy Venapro – External Hemorrhoids Treatment
Buy Venapro – External Hemorrhoids Treatment
 
Aprovechando al máximo los estándares 10/16 CPCI
Aprovechando al máximo los estándares 10/16 CPCIAprovechando al máximo los estándares 10/16 CPCI
Aprovechando al máximo los estándares 10/16 CPCI
 
G1 G4
G1 G4G1 G4
G1 G4
 
3 the superlative
3 the superlative3 the superlative
3 the superlative
 
Inbound 2016 Recap
Inbound 2016 RecapInbound 2016 Recap
Inbound 2016 Recap
 
Гражданский контроль в управлении городом
Гражданский контроль в управлении городомГражданский контроль в управлении городом
Гражданский контроль в управлении городом
 
промо калининград сентябрь 2010
промо калининград   сентябрь 2010промо калининград   сентябрь 2010
промо калининград сентябрь 2010
 
HDFC standard Life
HDFC standard LifeHDFC standard Life
HDFC standard Life
 
наш город 2
наш город 2наш город 2
наш город 2
 
Thankful Journal- Riley
Thankful Journal- RileyThankful Journal- Riley
Thankful Journal- Riley
 
CCV Faculty Institute 2010
CCV Faculty Institute 2010CCV Faculty Institute 2010
CCV Faculty Institute 2010
 
My Roles For The Festival
My Roles For The FestivalMy Roles For The Festival
My Roles For The Festival
 
Group1 presentation2-droughtv2
Group1 presentation2-droughtv2Group1 presentation2-droughtv2
Group1 presentation2-droughtv2
 
Bai iii quy trinh tmdt
Bai iii   quy trinh tmdtBai iii   quy trinh tmdt
Bai iii quy trinh tmdt
 

Semelhante a Ung dung web chuong 7

6.adapterset
6.adapterset6.adapterset
6.adapterset
Dao Uit
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
Dũng Đinh
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
TI Anh
 

Semelhante a Ung dung web chuong 7 (20)

Chuong 07_ gắng kết dữ liệu asp.net
Chuong 07_ gắng kết dữ liệu asp.netChuong 07_ gắng kết dữ liệu asp.net
Chuong 07_ gắng kết dữ liệu asp.net
 
ado.net
ado.netado.net
ado.net
 
6.adapterset
6.adapterset6.adapterset
6.adapterset
 
Ung dung web chuong 4
Ung dung web  chuong 4Ung dung web  chuong 4
Ung dung web chuong 4
 
Aspnet 3.5 _05
Aspnet 3.5 _05Aspnet 3.5 _05
Aspnet 3.5 _05
 
Ung dung web chuong 5
Ung dung web  chuong 5Ung dung web  chuong 5
Ung dung web chuong 5
 
C5. Model, DataSharing.pdf
C5. Model, DataSharing.pdfC5. Model, DataSharing.pdf
C5. Model, DataSharing.pdf
 
04 chuong 4 - cap nhat du lieu
04   chuong 4 - cap nhat du lieu04   chuong 4 - cap nhat du lieu
04 chuong 4 - cap nhat du lieu
 
Asp
AspAsp
Asp
 
Webanalytics with haddop and Hive
Webanalytics with haddop and HiveWebanalytics with haddop and Hive
Webanalytics with haddop and Hive
 
LINQ presentation
LINQ presentationLINQ presentation
LINQ presentation
 
Lap trinh asp.net
Lap trinh asp.netLap trinh asp.net
Lap trinh asp.net
 
Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)Cai tien trong lenh t sql cua sql server 2008 (2)
Cai tien trong lenh t sql cua sql server 2008 (2)
 
Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1Hdth07 ltudql02-linq-ep1
Hdth07 ltudql02-linq-ep1
 
chuong_02.ppt
chuong_02.pptchuong_02.ppt
chuong_02.ppt
 
Giao trinh java script
Giao trinh java scriptGiao trinh java script
Giao trinh java script
 
The Art of Readable Code - DongPV
The Art of Readable Code - DongPVThe Art of Readable Code - DongPV
The Art of Readable Code - DongPV
 
Lớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong javaLớp kết nối csdl dùng jdbc trong java
Lớp kết nối csdl dùng jdbc trong java
 
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
Bài 5: ADO.NET & Kiến trúc không kết nối (tiếp) Điều khiển DataGridView,Combo...
 
7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)7 databinding-120306231825-phpapp02(1)
7 databinding-120306231825-phpapp02(1)
 

Mais de Giang Nguyễn

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.com
Giang Nguyễn
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sql
Giang Nguyễn
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01
Giang Nguyễn
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modeling
Giang Nguyễn
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Giang Nguyễn
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Giang Nguyễn
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sql
Giang Nguyễn
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206
Giang Nguyễn
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
Canbanvethietkevalaptrinhgame
Giang Nguyễn
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Giang Nguyễn
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
Giang Nguyễn
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csau
Giang Nguyễn
 

Mais de Giang Nguyễn (20)

Php can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.comPhp can ban_bai1_laptrinhwebphp.com
Php can ban_bai1_laptrinhwebphp.com
 
Os xmldomphp
Os xmldomphpOs xmldomphp
Os xmldomphp
 
Os php-7oohabits
Os php-7oohabitsOs php-7oohabits
Os php-7oohabits
 
Os php-5.3new1
Os php-5.3new1Os php-5.3new1
Os php-5.3new1
 
Lap trinh web dong voi php my sql
Lap trinh web dong voi php my sqlLap trinh web dong voi php my sql
Lap trinh web dong voi php my sql
 
Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01Kentcources 110109221507-phpapp01
Kentcources 110109221507-phpapp01
 
Hay php architect eav modeling
Hay php architect   eav modelingHay php architect   eav modeling
Hay php architect eav modeling
 
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dongHaiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
Haiphongit.com.tai lieu-php.my sql-thiet-ke-web-dong
 
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysqlHaiphongit.com.tai lieu-laptrinh ph-pvamysql
Haiphongit.com.tai lieu-laptrinh ph-pvamysql
 
Chuong07 php
Chuong07 phpChuong07 php
Chuong07 php
 
Bai th08 php voi csdl
Bai th08 php voi csdlBai th08 php voi csdl
Bai th08 php voi csdl
 
Haiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sqlHaiphongit.com.tai lieu-learning-php-my sql
Haiphongit.com.tai lieu-learning-php-my sql
 
Hd lap pttkht2008
Hd lap pttkht2008Hd lap pttkht2008
Hd lap pttkht2008
 
Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206Joomla administratormanual vi_20060206
Joomla administratormanual vi_20060206
 
Canbanvethietkevalaptrinhgame
CanbanvethietkevalaptrinhgameCanbanvethietkevalaptrinhgame
Canbanvethietkevalaptrinhgame
 
C1
C1C1
C1
 
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menuBuilding websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
Building websites-with-joomla-1-5-sample-chapter-chapter-7-the-menus-menu
 
Eclipse pdt indigo release review
Eclipse pdt   indigo release reviewEclipse pdt   indigo release review
Eclipse pdt indigo release review
 
Bai tap lap trinh web voi joomla csau
Bai tap   lap trinh web voi joomla csauBai tap   lap trinh web voi joomla csau
Bai tap lap trinh web voi joomla csau
 
Analyse
AnalyseAnalyse
Analyse
 

Último

C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
dnghia2002
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
ChuThNgnFEFPLHN
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
hoangtuansinh1
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
dangdinhkien2k4
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
ltbdieu
 

Último (20)

C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoiC6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
C6. Van de dan toc va ton giao ....pdf . Chu nghia xa hoi
 
các nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ emcác nội dung phòng chống xâm hại tình dục ở trẻ em
các nội dung phòng chống xâm hại tình dục ở trẻ em
 
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
SD-05_Xây dựng website bán váy Lolita Alice - Phùng Thị Thúy Hiền PH 2 7 8 6 ...
 
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
ĐỀ KIỂM TRA CUỐI KÌ 2 BIÊN SOẠN THEO ĐỊNH HƯỚNG ĐỀ BGD 2025 MÔN TOÁN 10 - CÁN...
 
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdfGiáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
Giáo trình xây dựng thực đơn. Ths Hoang Ngoc Hien.pdf
 
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
TUYỂN TẬP ĐỀ THI GIỮA KÌ, CUỐI KÌ 2 MÔN VẬT LÍ LỚP 11 THEO HÌNH THỨC THI MỚI ...
 
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdfSLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
SLIDE - Tu van, huong dan cong tac tuyen sinh-2024 (đầy đủ chi tiết).pdf
 
Giáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình PhươngGiáo trình nhập môn lập trình - Đặng Bình Phương
Giáo trình nhập môn lập trình - Đặng Bình Phương
 
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
30 ĐỀ PHÁT TRIỂN THEO CẤU TRÚC ĐỀ MINH HỌA BGD NGÀY 22-3-2024 KỲ THI TỐT NGHI...
 
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hộiTrắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
Trắc nghiệm CHƯƠNG 5 môn Chủ nghĩa xã hội
 
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
ĐỀ CHÍNH THỨC KỲ THI TUYỂN SINH VÀO LỚP 10 THPT CÁC TỈNH THÀNH NĂM HỌC 2020 –...
 
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docxbài thi bảo vệ nền tảng tư tưởng của Đảng.docx
bài thi bảo vệ nền tảng tư tưởng của Đảng.docx
 
Kiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net VietKiến thức cơ bản về tư duy số - VTC Net Viet
Kiến thức cơ bản về tư duy số - VTC Net Viet
 
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
60 CÂU HỎI ÔN TẬP LÝ LUẬN CHÍNH TRỊ NĂM 2024.docx
 
Bài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiệnBài giảng môn Truyền thông đa phương tiện
Bài giảng môn Truyền thông đa phương tiện
 
bài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hànhbài tập lớn môn kiến trúc máy tính và hệ điều hành
bài tập lớn môn kiến trúc máy tính và hệ điều hành
 
Access: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.pptAccess: Chuong III Thiet ke truy van Query.ppt
Access: Chuong III Thiet ke truy van Query.ppt
 
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
26 Truyện Ngắn Sơn Nam (Sơn Nam) thuviensach.vn.pdf
 
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
Danh sách sinh viên tốt nghiệp Đại học - Cao đẳng Trường Đại học Phú Yên năm ...
 
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdfxemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
xemsomenh.com-Vòng Thái Tuế và Ý Nghĩa Các Sao Tại Cung Mệnh.pdf
 

Ung dung web chuong 7

  • 1. Chương 7 ADO.NET - II
  • 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. 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. Thuộc tính ASP.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ộc tí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. 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. 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>DataBinding Expressions</center></b></u><br>"); if(!IsPostBack) { DataTable mydt = new DataTable(); DataRow mydr; mydt.Columns.Add(new DataColumn ("Numbers", typeof(Int32)));
  • 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. 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. Biểu thức và phương thức </ItemTemplate> </asp:DataList> </form> </html>
  • 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ời gian 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. Repeater Là 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ển dù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. 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. 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. 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. 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. 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. Repeater Output </form> </body> </html>
  • 18. DataList Cho 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. 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 with Alternating Columns</center></b></u><br>"); if (!IsPostBack) { DataTable mydt = new DataTable(); DataRow mydr; mydt.Columns.Add(new DataColumn ("Numbers", typeof(Int32)));
  • 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. 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. DataList Kết xuất </AlternatingItemTemplate> </asp:DataList> </form> </body> </html>
  • 23. Quản lý dữ liệu trong ASP.NET Insert Update DATA Delete Select
  • 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 CSDL mySqlCon = new SqlConnection ("server=SQLDB; uid= sa; pwd =password; database=pubs"); Chèn dữ liệu qua đối tượng command string 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. 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. 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. 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. 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. Chèn dữ liệu Publisher Id should start with 99 and contain 4 digits<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. 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. 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. 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ệnh trong EditCommandColumn
  • 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. Cập nhật dữ liệu Lấ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. 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>Updating Data</center></b></u><br>"); mySqlCon = new SqlConnection ("server=SQLDB; uid=sa; pwd=password;database=pubs"); if(!IsPostBack) BindGrid(); }
  • 36. Cập nhật dữ liệu public 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. 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. 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. 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 already exists with the same primary key"; else lblMessage.Text = exc.ToString() + "ERROR: Could not update record, please ensure the fields are correctly filled out"; }
  • 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. 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>
  • 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. 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>Deleting Data</center></b></u><br>"); mySqlCon = new SqlConnection ("server=SQLDB; uid =sa; pwd =password; database=pubs"); if (!IsPostBack) BindGrid(); }
  • 45. Deleting Data Example Contd… public void dbgMyGrid_Delete(Object sender, DataGridCommandEventArgs e) { string strDelete = "DELETE from publishers where pub_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. 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. 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. Cập nhật dữ liệu </body> </html>
  • 49. Quản lý dữ liệu XML Schema <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. 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. 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. Hiển thị dữ liệu trong DataGrid </h3> <ASP:DataGrid id="dbgMyGrid" runat="server" /> </body> </html>