首页 新闻 会员 周边

GridView编辑更新问题?

0
悬赏园豆:5 [已解决问题] 解决于 2008-09-03 19:03

使用GridView直接编辑更新数据时,出现一个让我迷惑的问题:

GridView编辑更新后绑定的数据仍是未更新前的数据,而再次点击编辑时才显示更新后的数据,但当后台数据是Oracle时,却不会发生这种情况,这是为什么?

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
  conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + base.Request.PhysicalApplicationPath + ConfigurationManager.AppSettings["AccessFile"]);

  string sqlstr = "update ComputerList set Machine_ID='"
                + ((TextBox)GridView1.Rows[GridView1.EditIndex].Cells[1].Controls[0]).Text + "' where Computer_Name='"
                + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";

  conn.Open();

 

  cmd = new OleDbCommand(sqlstr, conn);
  cmd.ExecuteNonQuery();

  GridView1.EditIndex = -1;
  bind(Session["GetDataSQL"].ToString());
}

 

public void bind(string GetDataSQL)
{
  string connStr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + base.Request.PhysicalApplicationPath + ConfigurationManager.AppSettings["AccessFile"];

  conn = new OleDbConnection(connStr);
  conn.Open();

  ds = this.StoneFunction.GetDSFromAccess(GetDataSQL, conn);

  DataView view = ds.Tables[0].DefaultView;
  GridView1.DataSource = view;

  GridView1.DataKeyNames = new string[] { "Computer_Name" };
  GridView1.DataBind();
  conn.Close();
}

 

public override void VerifyRenderingInServerForm(Control control)
{

}

问题补充: 在[自定义]的RowUpdating里:执行更新SQL后,再重新进行GridView[数据绑定],却绑定的是更新前的数据。代码看似没问题,但确实存在这种情况,各位也可以试试。 PS: cmd.ExecuteNonQuery() 后加 conn.Close(); 绑定正常了,不过还是稀里糊涂的,难道需要一个Commit过程?
这个季节的天的主页 这个季节的天 | 初学一级 | 园豆:185
提问于:2008-09-01 17:23
< >
分享
最佳答案
0
------------------------------------------ 在更新后要重绑定数据才行 1天前 回答者:Seven Shi - 菜鸟二级 ------------------------------------------ GridView1_RowUpdated 中再重置列表数据。试试也无妨。
陛下 | 老鸟四级 |园豆:3938 | 2008-09-02 21:28
其他回答(3)
0
在更新后要重绑定数据才行
Seven Shi | 园豆:275 (菜鸟二级) | 2008-09-01 18:48
0
使用 GridView 自带的 Update 是不需要重新绑定的 楼主这问题奇怪,从这些代码片段里,看不出问题
丁学 | 园豆:18730 (专家六级) | 2008-09-01 20:27
0
不可能跟数据库有关系吧,从描述看好像是数据收集的问题
Justin | 园豆:980 (小虾三级) | 2008-09-01 21:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册