我在access数据库里建了张表如下:
用户表:
UID 自动编号  (主键)
User 文本
PWD 文本
state 文本
EnterTime 日期/时间
OutTime   日期/时间sql语句如下:string strSQL = "";
       strSQL = strSQL + "INSERT INTO [用户表]([User],[PWD],[state],[EnterTime],[OutTime]) ";
       strSQL = strSQL + "VALUES('" + this.txt_name.Text + "', ";
       strSQL = strSQL + "       '" + this.txt_pwd.Text + "', ";
       strSQL = strSQL + "       '0', ";
       strSQL = strSQL + "       '" + DateTime.Now.ToLongDateString() + "', ";
       strSQL = strSQL + "       '')";
怎么老是说标准表达式中数据类型不匹配啊?还有,再问下 insert 语句一定要把字段名都列出来吗?

解决方案 »

  1.   

    有可能是你在建表的时候与插入的数据类型不符合吧,insert语句不一定都要写出来,当你是只对指定的属性插入的时候,就要指出来。
      

  2.   

    日期用##包含起来
    string strSQL = "";
           strSQL = strSQL + "INSERT INTO [用户表]([User],[PWD],[state],[EnterTime],[OutTime]) ";
           strSQL = strSQL + "VALUES('" + this.txt_name.Text + "', ";
           strSQL = strSQL + "       '" + this.txt_pwd.Text + "', ";
           strSQL = strSQL + "       '0', ";
           strSQL = strSQL + "       #" + DateTime.Now.ToLongDateString() + "#, ";
           strSQL = strSQL + "       '')";
      

  3.   

    SQL语法有错
    访问我的博客 程序员日记 http://www.ideaext.com
      

  4.   

    Convert.ToDateTime(DateTime.Now.ToLongDateString())
    insert   into   A(name,   date)   values("1",   #2009-1-20#)