SqlCommand objcmdin = new SqlCommand("SET   IDENTITY_INSERT   班级信息   ON    insert into 班级信息 (ClassId,ClassName,Details) values('2','" + textBox1.Text + "','" + textBox2.Text + "')   SET   IDENTITY_INSERT   班级信息   OFF", objconn);
                objcmdin.ExecuteNonQuery();这个ClassId不写进列名时,提示有错,可是写进去要给什么值呢,我这个classid是主键,而且设置成自加1的,不知该怎么做了,请教大家帮帮忙了

解决方案 »

  1.   

    ClassId可以不用写的吧,只插入除ClassId字段的其它字段就可以了
    insert into 班级信息(ClassName,Details) values("'"+textBox1.Text+"','"+textBox2.Text+"'")
    应该可以
      

  2.   


    这样:
    SqlCommand objcmdin = new SqlCommand("SET   IDENTITY_INSERT   班级信息   ON    insert into 班级信息 (ClassName,Details) values('" + textBox1.Text + "','" + textBox2.Text + "')   SET   IDENTITY_INSERT   班级信息   OFF", objconn); 
                    objcmdin.ExecuteNonQuery(); 
      

  3.   

    SqlCommand objcmdin = new SqlCommand("SET   IDENTITY_INSERT   班级信息   ON    insert into 班级信息 (ClassName,Details) values('" + textBox1.Text + "','" + textBox2.Text + "')   SET   IDENTITY_INSERT   班级信息   OFF", objconn);
                    objcmdin.ExecuteNonQuery(); 
    这样应该不会有错吧
      

  4.   

    按大家说的做,提示出错
    "当 IDENTITY_INSERT 设置为 ON 时,必须指定表 '班级信息' 中标识列的显式值。"
      

  5.   

    SqlCommand objcmdin = new SqlCommand("insert into 班级信息 (ClassName,Details) values('" + textBox1.Text  + "','" + textBox2.Text + "')   SET   IDENTITY_INSERT   班级信息   OFF",  objconn);
    objcmdin.ExecuteNonQuery(); 把 SET   IDENTITY_INSERT   班级信息   ON去掉
      

  6.   

    create table tb(id int identity(1,1),name varchar(50))
    insert into tb(name) select '大大'
    select * from tb
    set identity_insert tb on
    insert into tb(id,name) select 1,'大大'
    insert into tb(id,name) select 2,'小小'
    set identity_insert tb off
    select * from tb
      

  7.   

    我主键已经改了,是ClassName了
      

  8.   

    SqlCommand objcmdin = new SqlCommand(
    "insert into 班级信息 (ClassName, Details) values('" + textBox1.Text  + "','" 
    + textBox2.Text + "')" ,  objconn);
    objcmdin.ExecuteNonQuery();  这样就不错了
      

  9.   

    “SET IDENTITY_INSERT 班级信息 ON”本身是要关闭自增加的功能,所以你这个ClassID肯定是要写进这句语句的。ClassID我想应该是一个数值型的字段,所以在后面的Values ()语句中不要加“'”单引号。 
      SqlCommand objcmdin = new SqlCommand("SET   IDENTITY_INSERT   班级信息   ON    insert into 班级信息 (ClassId,ClassName,Details) values(2,'" + textBox1.Text + "','" + textBox2.Text + "')   SET   IDENTITY_INSERT   班级信息   OFF", objconn); 
      objcmdin.ExecuteNonQuery();----------------------------------------------------------- 
        爱找房(http://www.izfang.com
     我的个人网站,免费的房屋租赁网站,大家要多多捧场哦。
      

  10.   

    对了,还有一点,你要插入的那ClassID的值“2”会不会已经在表中存在了?因为你的ClassID字段是主键,要求每条记录的ClassID值是唯一的,如果你要插入的值“2”已经在表里存在,我想应该会出错的。
    ----------------------------------------------------------- 
        爱找房(http://www.izfang.com
     我的个人网站,免费的房屋租赁网站,大家要多多捧场哦。
      

  11.   

    谢谢大家,我把主键改为classname,然后SqlCommand objcmdin = new SqlCommand("insert into 班级信息 (ClassName,Details) values('" + textBox1.Text + "','" + textBox2.Text + "')  ", objconn);
                    objcmdin.ExecuteNonQuery();
    就可以了,因为没用过自增1的,所以不太清楚怎么用,现在可以了,开心
      

  12.   

    支持,自动增长列还要insert value吗,没听说过可以的!!!
    系统自动生成的。