代码之家  ›  专栏  ›  技术社区  ›  rlb.usa

更新数据表?

  •  0
  • rlb.usa  · 技术社区  · 14 年前

    我想更新数据表中的一行,所以我要执行以下操作:

     protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
     {
        DataView dv = (DataView)Session["My_DataTable"];
        DataTable dt = dv.Table;
        int rowIndex = GridView1.Rows[e.RowIndex];
        dt.Rows[rowIndex]["FirstName"] = thenewfirstname;
        dt.Rows[rowIndex]["MI"] = thenewmi;
        dt.Rows[rowIndex]["LastName"] =thenewlastname;
        Session["My_DataTable"] = dv;
        //Reset the edit index.
        GridView1.EditIndex = -1;
    
        //Bind data to the GridView control.
        GridView1.DataSource = Session["My_DataTable"];
        GridView1.DataBind();
     }
    

    基本的DataView/DataTable已正确更改,但GridView既包含编辑前的旧行,也包含编辑后的新行(即,它添加了一个包含新编辑的附加行!)。

    ...
    Sammy S Samerson 
    ...
    

    把它改成 Sammy E Samerson

    ...
    Sammy S Samerson
    Sammy E Samerson
    ...
    

    2 回复  |  直到 14 年前
        1
  •  1
  •   rlb.usa    14 年前

    发生了很多奇怪的事情。

        2
  •  1
  •   Geeth    14 年前

    例如

    DataRow[] customerRow = 
    dataSet1.Tables["Customers"].Select("CustomerID = 'ALFKI'");
    
    customerRow[0]["CompanyName"] = "Updated Company Name";
    customerRow[0]["City"] = "Seattle";
    

    例如:

    string courseid = GridView1.Rows[e.RowIndex].Cells[3].Text;