为什么提示"IDENTITY_INSERT 为 ON 时"

iwantnet 2008-03-13 11:01:41
private void Insert_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(@"server=(local)\sqlexpress;Integrated Security=True;" + "Database=pubs");
con.Open();
string sql_Insert = "insert into jobs value('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')";

SqlCommand command = new SqlCommand(sql_Insert, con);

command.ExecuteNonQuery();
MessageBox.Show("插入成功!");
SqlDataAdapter da = new SqlDataAdapter("select * from jobs",con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt.DefaultView;
}
为什么运行时会提示"仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'jobs'中的标识列指定显式值。"
请高手帮助
...全文
509 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericzhangbo1982111 2008-03-13
  • 打赏
  • 举报
回复
。。。
MyLf 2008-03-13
  • 打赏
  • 举报
回复
jobs表中有IDENTITY字段,你在insert的时候,要指定要插入的非IDENTITY字段名才行,这样就表明不给IDENTITY字段赋值。

"insert into jobs value('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')";
意味着将4个值按顺序插到jobs的字段中,前4个字段中,肯定有一个是IDENTITY,所以就报错。
whoami333 2008-03-13
  • 打赏
  • 举报
回复
你的jobs表里哪一列是标识列?进到数据库里看一下就知道了。取消insert里的那一列。另:插入语句里最好写上列名称。
例如:insert into 表名 (列1,列2,...) values(值1,值2,...)
iwantnet 2008-03-13
  • 打赏
  • 举报
回复
兄弟,那我在那里改呢!我不太明白.请详解!谢谢!!
whoami333 2008-03-13
  • 打赏
  • 举报
回复
你使用了标识列,标识列不需要列在insert的列里。

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧