.net 数据网格值在编辑/更新功能后不更新

.net 数据网格值在编辑/更新功能后不更新,.net,asp.net,gridview,.net-3.5,.net,Asp.net,Gridview,.net 3.5,我正在使用以下代码更新datagrid中的数据 但当我单击“更新”时,该值在数据库中更新,但在datagrid中仍显示旧值 如果在此之后刷新页面,那么datagrid将显示更新后的值 有什么不对劲吗 更新命令代码: protected void MySQLDataGrid2_UpdateCommand(object source, DataGridCommandEventArgs e) { string newData; TextBox aTextBox;

我正在使用以下代码更新datagrid中的数据

但当我单击“更新”时,该值在数据库中更新,但在datagrid中仍显示旧值

如果在此之后刷新页面,那么datagrid将显示更新后的值

有什么不对劲吗

更新命令代码:

protected void MySQLDataGrid2_UpdateCommand(object source, DataGridCommandEventArgs e)
{
      string newData;

      TextBox aTextBox;
      aTextBox = (TextBox)(e.Item.Cells[0].Controls[0]);
      newData = aTextBox.Text;

      decimal comm = Convert.ToDecimal(newData);

      string UpdateHiveCommission = "Update tbl_HiveCommission set Commission = '" + Convert.ToDecimal(newData) + "'";
      MySqlConnection objMyCon3 = new MySqlConnection(strProvider);
      objMyCon3.Open();
      MySqlCommand cmd3 = new MySqlCommand(UpdateHiveCommission, objMyCon3);
      cmd3.ExecuteNonQuery();
      objMyCon3.Close();

      MySQLDataGrid2.EditItemIndex = -1;
      MySQLDataGrid2.DataBind();
}

我认为您需要再次调用您的加载机制-因为网格的数据源没有更新,所以它将保存上次选择的旧数据。
如果再次加载数据时出现性能问题,可以手动更改已编辑行的数据。

我认为您需要再次调用加载机制-因为网格的数据源未更新,因此它将保存上次选择的旧数据。 如果再次加载数据时出现性能问题,可以手动更改已编辑行的数据。

快速修复:

您可以尝试将此行移动到第_Load()页

或者,在执行update命令后,通过以下方式“刷新”页面:

Response.Redirect(Request.RawUrl);
快速修复:

您可以尝试将此行移动到第_Load()页

或者,在执行update命令后,通过以下方式“刷新”页面:

Response.Redirect(Request.RawUrl);
成功编辑后

尝试调用您的数据绑定方法

比如:

private void BindMEthod()
{

//Your code in binding data to your datagridview.

}

        protected void MySQLDataGrid2_UpdateCommand(object source, DataGridCommandEventArgs e) {     
      string newData;  
          TextBox aTextBox;   
        aTextBox = (TextBox)(e.Item.Cells[0].Controls[0]);     
      newData = aTextBox.Text;       
     decimal comm = Convert.ToDecimal(newData);  
          string UpdateHiveCommission = "Update tbl_HiveCommission set Commission = '" + Convert.ToDecimal(newData) + "'";    
       MySqlConnection objMyCon3 = new MySqlConnection(strProvider);   
        objMyCon3.Open();     
      MySqlCommand cmd3 = new MySqlCommand(UpdateHiveCommission, objMyCon3);   
        cmd3.ExecuteNonQuery();     
      objMyCon3.Close();    
       // MySQLDataGrid2.EditItemIndex = -1;       --
   // MySQLDataGrid2.DataBind(); 

       //Replace with this

    BindMEthod();

    } 
希望这有帮助

成功编辑后的问候语

尝试调用您的数据绑定方法

比如:

private void BindMEthod()
{

//Your code in binding data to your datagridview.

}

        protected void MySQLDataGrid2_UpdateCommand(object source, DataGridCommandEventArgs e) {     
      string newData;  
          TextBox aTextBox;   
        aTextBox = (TextBox)(e.Item.Cells[0].Controls[0]);     
      newData = aTextBox.Text;       
     decimal comm = Convert.ToDecimal(newData);  
          string UpdateHiveCommission = "Update tbl_HiveCommission set Commission = '" + Convert.ToDecimal(newData) + "'";    
       MySqlConnection objMyCon3 = new MySqlConnection(strProvider);   
        objMyCon3.Open();     
      MySqlCommand cmd3 = new MySqlCommand(UpdateHiveCommission, objMyCon3);   
        cmd3.ExecuteNonQuery();     
      objMyCon3.Close();    
       // MySQLDataGrid2.EditItemIndex = -1;       --
   // MySQLDataGrid2.DataBind(); 

       //Replace with this

    BindMEthod();

    } 
希望这有帮助


关于

如何手动更改已编辑行的数据?你能举一个小例子说明如何做到这一点吗?只是不要调用数据绑定-这会导致当前输入的数据被数据源中的数据替换。你可以-在数据绑定后只写aTextBox.Text=newData;不,这不管用。写入
aTextBox.Text=newData对其行为方式没有任何影响;否则,您需要创建一个LoadValues()方法,并在DataBind()之后调用该方法;如何手动更改已编辑行的数据?你能举一个小例子说明如何做到这一点吗?只是不要调用数据绑定-这会导致当前输入的数据被数据源中的数据替换。你可以-在数据绑定后只写aTextBox.Text=newData;不,这不管用。写入
aTextBox.Text=newData对其行为方式没有任何影响;否则,您需要创建一个LoadValues()方法,并在DataBind()之后调用该方法;好的,但是当第一次加载页面时会发生什么呢?它会尝试什么都不绑?这不起作用。事实上,当我单击“编辑”时,我的整个数据网格将变为空。我认为,当页面第一次加载时,您的数据网格应该绑定到某个对象。好的,但是当页面第一次加载时会发生什么?它会尝试什么都不绑?这不起作用。事实上,当我单击“编辑”时,我的整个数据网格将变为空。当页面第一次加载时,我认为您的数据网格应该绑定到某个对象。谢谢:),但可能您没有注意到我已经接受了此问题的答案。不管怎样,谢谢你的帮助:):)是的,我以为你还没有得到任何答案……但仍然欢迎你。谢谢:)但也许你没有注意到我已经接受了这个问题的答案。无论如何,谢谢你的帮助:):)是的,我以为你还没有任何答案……但还是欢迎你。