请问这句Access查询语句

using (OleDbCommand com = con.CreateCommand())
  {
  com.CommandText =" Insert into 职工 values('姓名','年龄')";  
  com.ExecuteNonQuery(); 
  }

我想表中插入一条数据,除了主键,只有两列----姓名、年龄,而创建Access表的时候,已经设置了自动增加主键,
那我这句插入数据的代码,为什么报错呢?:
查询值的数目与目标字段中的数目不同

是不是要把主键写进去,我用sql server就不用写主键。

作者: sdgds53   发布时间: 2011-06-16

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
可以不写主键

作者: ghost5216   发布时间: 2011-06-16

楼上回答了!

作者: wujiafan51   发布时间: 2011-06-16

指明要插入的列

作者: bdmh   发布时间: 2011-06-16

Insert into 职工 values('姓名','年龄')";  
 你这职工是表名吗?
  那列名呢??

作者: Gene_X   发布时间: 2011-06-16

引用 1 楼 ghost5216 的回复:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
可以不写主键

com.CommandText =" Insert into 职工(姓名,年龄) values('张三','23')";  
com.ExecuteNonQuery(); 

还是报错:查询值的数目与目标字段中的数目不同

作者: sdgds53   发布时间: 2011-06-16

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
写全列看看。再去搞不全的

作者: tigercao101   发布时间: 2011-06-16

引用 6 楼 tigercao101 的回复:
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
写全列看看。再去搞不全的

主键我设置的自动增长,Access,所以,VALUES值不能给定,所以,就不能写全列

作者: sdgds53   发布时间: 2011-06-16

是不是你表搞错了?

作者: rocket2010   发布时间: 2011-06-16

楼上的意思是:
Insert into 职工(姓名字段,年龄字段) values('姓名','年龄')
既然主键是自动增长,就不要写出来就行了

作者: chen_bruce   发布时间: 2011-06-16

自己仔细好好检查一下!

作者: wujiafan51   发布时间: 2011-06-16