.net 数据网格值在编辑/更新功能后不更新
我正在使用以下代码更新datagrid中的数据 但当我单击“更新”时,该值在数据库中更新,但在datagrid中仍显示旧值 如果在此之后刷新页面,那么datagrid将显示更新后的值 有什么不对劲吗 更新命令代码:.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;
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()之后调用该方法;好的,但是当第一次加载页面时会发生什么呢?它会尝试什么都不绑?这不起作用。事实上,当我单击“编辑”时,我的整个数据网格将变为空。我认为,当页面第一次加载时,您的数据网格应该绑定到某个对象。好的,但是当页面第一次加载时会发生什么?它会尝试什么都不绑?这不起作用。事实上,当我单击“编辑”时,我的整个数据网格将变为空。当页面第一次加载时,我认为您的数据网格应该绑定到某个对象。谢谢:),但可能您没有注意到我已经接受了此问题的答案。不管怎样,谢谢你的帮助:):)是的,我以为你还没有得到任何答案……但仍然欢迎你。谢谢:)但也许你没有注意到我已经接受了这个问题的答案。无论如何,谢谢你的帮助:):)是的,我以为你还没有任何答案……但还是欢迎你。