日期:2014-05-18  浏览次数:21068 次

急!!!!!Update语句错误,很简单的,求帮忙
protected void updateMoney(OleDbConnection OleDbcon)
  {
  OleDbConnection conn = DB.connstr();
  conn.Open();
  string updateM = "select Money from user_info where userName='" + Session["user"].ToString() + "'";
  OleDbCommand updcmd = new OleDbCommand(updateM, OleDbcon);
  double allM = Convert.ToDouble(updcmd.ExecuteScalar());
  string newM = Convert.ToString(allM - Convert.ToDouble(this.CartPriceTxt.Text));
  string uped = "update user_info set Money='" + newM + "' where userName='" + Session["user"].ToString() + "'";
  OleDbCommand upcmd = new OleDbCommand(uped, OleDbcon);
  upcmd.ExecuteNonQuery();
  conn.Close();
  }
就是购买之后,更新金币数量,但是执行时报错。

以下是表结构,最简单的Access表,表名use_info,字段useID为主键,自动编号,Money为文本类型,useName也是文本

------解决方案--------------------
具体什么错误?
还有我记得money是access的关键字吧

改成
string uped = "update user_info set [Money]='" + newM + "' where userName='" + Session["user"].ToString() + "'";
------解决方案--------------------
money是系统保留字,作为表名或字段名使用时要用方括号括起来
------解决方案--------------------
在Access中这是个老毛病了,你一次遇到解决了,下次就不会再犯了。
像什么 User、Name、Password等关键字,都是需要加[]的