这是我的SQL语句:
问题一:insert into username(username,password,email,Tel,Address,youbian,reg_time,Lastlogin_time,Question,answer) values('12','12','12','12','12','12',#2006-1-13 8:37:07#,#2006-1-13 8:37:07#,'12','12')
在数据库的SQL视图查询下没有问题,但在asp、asp.net下执行就提示:INSERT INTO 语句的语法错误。以前开发asp程序的时候只好改用rs.addnew的方式了,可现在.net不懂用什么?应该说语句没有问题,是不是一长就出问题了,哪位也碰到过这种情况?怎么解决的?
问题二、如上sql语句,这个表只有一个ID号(自动编号)字段没有插入,我以为在有的机子上是直接写表名就可以了,ID号就会自动插入,可现在在我这台机子上如果不写出这么多列就会提示与目标字段数目不相同,请问是什么原因?
问题三、在access、sql server中怎么使自动编号重新排列?也就是说本来有1、2、3、4条数据,我删除第三条,然后让他又变成1、2、3而不是1、2、4!

解决方案 »

  1.   

    password等是系统保留字,要加[],改为如下
    insert into username(username,[password],email,Tel,Address,youbian,reg_time,Lastlogin_time,Question,answer) values('12','12','12','12','12','12',#2006-1-13 8:37:07#,#2006-1-13 8:37:07#,'12','12')sql server和access中日期格式写法是有区别的
    access
    insert into username(username,[password],email,Tel,Address,youbian,reg_time,Lastlogin_time,Question,answer) values('12','12','12','12','12','12',#2006-1-13 8:37:07#,#2006-1-13 8:37:07#,'12','12')sql server
    insert into username(username,[password],email,Tel,Address,youbian,reg_time,Lastlogin_time,Question,answer) values('12','12','12','12','12','12','2006-1-13 8:37:07','2006-1-13 8:37:07','12','12')
      

  2.   

    问题二
    ID号(自动编号),所以插入时不用加id字段提示与目标字段数目不相同,那是因为你的字段数目和值没有对应起来,对应起来就ok了
      

  3.   

    问题三identity是自动产生的,如果删除了中间某一条,那么就会产生缺号的现象,除非你人工插入

    SET IDENTITY_INSERT id ON
    insert into username(id,username,[password],email,Tel,Address,youbian,reg_time,Lastlogin_time,Question,answer) values(3,'12','12','12','12','12','12','2006-1-13 8:37:07','2006-1-13 8:37:07','12','12')
      

  4.   

    谢谢小山!问题一已经解决!但我想问,为什么在sql视图中他就可以执行, 难道他不认关键字了?
    另外问题二,已经对应好了啊!
      

  5.   

    1:长短不是问题,要是你没有写错的话都不会错。你下次设计数据库的时候注意一下,不要将那些关键字设置成字段,如name/time等等
    2:自增型变量不要你自己写,而是数据在写入的时候自动会加上的。这里我提示你注意一下,那个字段你要将标志设置为是,将增量设为1,要是你不想安1递增,那你就设置成你想要的长度。如2