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

access 后台更新
 我在更新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字段为长整型有关,谁能指教下?
------解决方案--------------------
ID= 后面不要单引号试一下
------解决方案--------------------
在用Sql更新数据时,如果字段为字符型,需用''括起来,如果为数值型,则不需要'',如是为日期型,则需用# #括起来,下面举个例子,其中pname为姓名(字符型),age为年龄(数值型),Pdate为出生日期(日期型)
sql="update aa set pname='" + tname +"',age=" + tage + ",pdate=#" + tdate + " where id=" +pid
------解决方案--------------------
atime=now() where ID=" + inid + " ";