using (OleDbCommand com = con.CreateCommand())
    {
        com.CommandText =" Insert into 职工 values('姓名','年龄')";   
        com.ExecuteNonQuery(); 
    }我想表中插入一条数据,除了主键,只有两列----姓名、年龄,而创建Access表的时候,已经设置了自动增加主键,
那我这句插入数据的代码,为什么报错呢?:
查询值的数目与目标字段中的数目不同是不是要把主键写进去,我用sql server就不用写主键。

解决方案 »

  1.   

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

  2.   

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

  3.   

    com.CommandText =" Insert into 职工(姓名,年龄) values('张三','23')";   
    com.ExecuteNonQuery(); 还是报错:查询值的数目与目标字段中的数目不同
      

  4.   

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

  5.   

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

  6.   

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

  7.   

    LZ试下这样com.CommandText =" Insert into [职工]([姓名],[年龄]) values('张三','23')";   
    com.ExecuteNonQuery();  感觉有点麻烦,不过能解决问题
      

  8.   

      using (OleDbCommand com = con.CreateCommand())
                {
                    com.CommandText = " Insert into 职工(姓名,年龄) values('王五','36')";
                    com.ExecuteNonQuery(); 
                }还是没对!!!!!!!
    报错:查询值的数目与目标字段中的数目不同
      

  9.   

    把sql 直接在数据库中运行,先把不需要的代码排除
      

  10.   

    没有多余的代码,我只是在控制台实验,open()处都没问题,就是
      com.CommandText = " Insert into 职工(姓名,年龄) values('王五','36')";
      com.ExecuteNonQuery();  
    不正确
      

  11.   

     class Program
        {        static void Main(string[] args)
            {            string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\人事管理.mdb;";            OleDbConnection con = new OleDbConnection(str);
                con.Open();
                using (OleDbCommand com = con.CreateCommand())
                {
                    com.CommandText = " Insert into [职工]([姓名],[年龄]) values('王五','36')";
                    com.ExecuteNonQuery();  //执行插入
                }
               
                Console.ReadKey();
            }     }
      

  12.   

     class Program
        {        static void Main(string[] args)
            {            string str = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\桌面\开奖数据.mdb;";            OleDbConnection con = new OleDbConnection(str);
                con.Open();
                using (OleDbCommand com = con.CreateCommand())
                {
                    com.CommandText = " Insert into [职工]([姓名],[年龄]) values('王五','36')";
                    com.ExecuteNonQuery(); 
                }
               
                Console.ReadKey();
            }     }这就是全部代码
      

  13.   

    还是提示 insert into  语句错误么