我在更新access数据库时,后台用如下代码,结果被告知
 标准表达式中数据类型不匹配。
  
 string ans = TextBox2.Text.ToString();
              string constr = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=|DataDirectory|QandA.mdb";
              int inid = System.Convert.ToInt32(Page.Request.QueryString["ID"]);
             
              OleDbConnection con = new OleDbConnection(constr);
              con.Open();
              string com = "update quesans set answer='" + ans + "',atime=now() where ID='" + inid + "' ";
              OleDbCommand comm = new OleDbCommand(com, con);
              comm.ExecuteNonQuery();
              con.Close();
 ============================
 个人怀疑与access数据库中 表quesans的ID字段为长整型有关,谁能指教下?

解决方案 »

  1.   

    提取语句,在access查询分析器测试一下。
      

  2.   

    在用Sql更新数据时,如果字段为字符型,需用''括起来,如果为数值型,则不需要'',如是为日期型,则需用# #括起来,下面举个例子,其中pname为姓名(字符型),age为年龄(数值型),Pdate为出生日期(日期型)
    sql="update aa set pname='" + tname +"',age=" + tage + ",pdate=#" + tdate + " where id=" +pid
      

  3.   

    atime=now() where ID=" + inid + " ";
      

  4.   

    sql="update aa set pname='" + tname +"',age=" + tage + ",pdate=#" + tdate  + " where id=" +pid
    tdate的#应该闭合吧?
      

  5.   

    不过照#2 #3 #4L 的方法确实是我把数值类型当作字符型处理以致报错,感谢楼上所有人的帮助哈
    especially ranzhifa_2008