读书人

大家小弟我好! 小弟我遇到一个简单的有

发布时间: 2012-01-24 23:11:54 作者: rapoo

大家我好! 我遇到一个简单的问题,请大家帮帮忙!!
为什么我每次更新时都是得到它的原来的值(就是第一次给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.Connection.Close(); 这两个语句顺序调换下其次要做以下改动


}

1 。gridbind方法要加个conn的open方法,2 这个 comm.Connection.Close();换成公有的connection即conn的close方法,然后

[解决办法]
按你说的应该是数据库更新了但是显示没有更新,如果刷新下应该可以看到数据被更新了

读书人网 >asp.net

热点推荐