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也是文本

解决方案 »

  1.   

    很短的更新语句,看来看去不知道错在哪里,运算时double类型,更新时转换回string类型了,应该没问题的啊
      

  2.   

    具体什么错误?
    还有我记得money是access的关键字吧改成  
    string uped = "update user_info set [Money]='" + newM + "' where userName='" + Session["user"].ToString() + "'";
      

  3.   

    我试试把Money改了看看,谢谢提醒
      

  4.   

    money是系统保留字,作为表名或字段名使用时要用方括号括起来
      

  5.   

    在Access中这是个老毛病了,你一次遇到解决了,下次就不会再犯了。
    像什么 User、Name、Password等关键字,都是需要加[]的