首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于datagrid的DataGrid1_UpdateCommand有关问题

2012-02-10 
关于datagrid的DataGrid1_UpdateCommand问题DataGrid1_UpdateCommand中的代码是:cmd.Parameters[ @produc

关于datagrid的DataGrid1_UpdateCommand问题
DataGrid1_UpdateCommand中的代码是:
                             
cmd.Parameters[ "@productId "].Value   =   ((TextBox)e.Item.Cells[0].Controls[0]).Text;      
cmd.Parameters[ "@prodauctName "].Value   =   ((TextBox)e.Item.Cells[1].Controls[0]).Text;      
cmd.Parameters[ "@oldprice "].Value   =   ((TextBox)e.Item.Cells[2].Controls[0]).Text;
cmd.Parameters[ "@newprice "].Value   =   ((TextBox)e.Item.Cells[3].Controls[0]).Text;
cmd.Parameters[ "@quantity "].Value   =   ((TextBox)e.Item.Cells[4].Controls[0]).Text;
cmd.Parameters[ "@newold "].Value   =   ((TextBox)e.Item.Cells[5].Controls[0]).Text;

        conn.Open();
cmd.ExecuteNonQuery();      
conn.Close();      
DataGrid1.EditItemIndex   =   -1;
this.DataBind();

修改数据后不保存,还是原来的值,是变量付值有错误吗?
错在哪里?应该怎么改?请大家帮帮忙!谢谢!



[解决办法]
从理论上来说,你去做更新的时候应该有一项是通过原有的主键更新的,一般是
DataGrid1.DataKeys[e.Item.ItemIndex].ToString() 但我没见到这样的代码
[解决办法]
你更新到数据库是要根据主键的。也就是dagakeyfieds
我也没看过你这样有代码呀
在绑定数据的时候,要将主键的值存进去,更新的时候,根据它来更新
[解决办法]
1.
检查 cmd.ExecuteNonQuery(); 的返回值, 如
int affectedCount = cmd.ExecuteNonQuery(); //
//Response.Write(affectedCount); // affectedCount 此操作影响的行数,如果 > 0 表示更新成功了,

2.
确保的你Datagrid绑定放在 !IsPostBack 内部,如
if(!IsPostBack) {
DataGrid1.DataSource = GetMyDataSource();
DataGrid1.DataBind();
}

Good Luck!

热点排行