大家我好! 我遇到一个简单的问题,请大家帮帮忙!!
为什么我每次更新时都是得到它的原来的值(就是第一次给DataGrid的值),根本就更新不了代码如下:
Trace.Warn(sql);这个每次输出的都是原来的值,所以就更新不了,这是为什么啊??
protected void Gridupdate(Object sender,DataGridCommandEventArgs e) {
string sql,a,b;
a=((TextBox)e.Item.Cells[1].Controls[0]).Text;
b=((TextBox)e.Item.Cells[2].Controls[0]).Text;
sql = "update cpxlh set cpxlh= ' " + a + " ' , cpbh= ' " + b + " ' where id= " +
(int)dg.DataKeys[e.Item.ItemIndex];
Trace.Warn(sql);
OleDbCommand comm = new OleDbCommand();
comm.CommandText = sql;
comm.Connection = conn;
try
{
comm.ExecuteNonQuery();
Response.Write( " <script language=javascript> alert( '修改成功! '); </script> ");
dg.EditItemIndex = -1;
gridbind();
}
catch (OleDbException)
{
Response.Write( " <script language=javascript> alert( '修改失败! ') </script> ");
}
finally {
gridbind();
comm.Connection.Close();
}
}
------解决方案--------------------设断点跟踪下,看下赊购凝成的sql语句是否有问题.
即确定下列变量是否有值.
a=((TextBox)e.Item.Cells[1].Controls[0]).Text;
b=((TextBox)e.Item.Cells[2].Controls[0]).Text;
(int)dg.DataKeys[e.Item.ItemIndex]
------解决方案--------------------大概是Page_Load里没有if(!Page.IsPostBack){Bind()}吧。
------解决方案--------------------finally {
gridbind();
comm.Co