日期:2014-05-17  浏览次数:20380 次

access使用参数update,不报错,但也不执行
string id = Request.QueryString["id"];
  int vid = Convert.ToInt32(id); 
cmd.CommandText = "update player set name=?,age=? where id=?";
   
  //参数查询
   
  OleDbParameter Paraname = new OleDbParameter("?", OleDbType.VarChar);
  Paraname.Value = TextBox1.Text;
  cmd.Parameters.Add(Paraname);

  OleDbParameter Paraage = new OleDbParameter("?", OleDbType.VarChar);
  Paraage.Value = TextBox2.Text;
  cmd.Parameters.Add(Paraage);

  OleDbParameter Paraid = new OleDbParameter("?", OleDbType.Integer);
  Paraid.Value = vid;
  cmd.Parameters.Add(Paraid);
上面是我使用参数更新记录的代码,使用参数插入记录都可以完整执行,但是这个更新就无法执行,而且还不报错,在网上看了很多这方面的帖子,有说是access文件权限的,也有说是参数顺序。我的数据库可以插入记录应该不是权限的问题,至于顺序吗?我看了很长时间也看不出顺序方面出了什么错。
请大家帮忙看看,问题出在哪里?

------解决方案--------------------
cmd.CommandText = "update player set [name]=@name,[age]=@age where [id]=@id";
cmd.Parameters.AddWithValue("@name",TextBox1.Text);
cmd.Parameters.AddWithValue("@age",TextBox2.Text);
cmd.Parameters.AddWithValue("@id",vid);
cmd.ExecuteNonquery();

试试这样写