当表具有标识列时,如何在Asp.net页面中插入数据

时间:2014-08-19 04:32:26

标签: asp.net .net sql-server-2008

当我将数据库中的数据插入到具有identity规范的表中时,我遇到了错误。

SQL

string query = "insert into student values('"+txtname.Text+"','"+name_image+"','"+txtage.Text+"','"+txtaddress.Text+‌​"')";

错误是

  

列名或提供的值与表定义不匹配。

2 个答案:

答案 0 :(得分:3)

您应该养成始终的习惯,指定要插入值的显式列列表 - 这样,您可以省略identity列并防止出现此错误:< / p>

INSERT INTO dbo.Student(Col1, Col2, ...., ColN)
VALUES(Val1, Val2, ...., ValN)

只是说INSERT INTO dbo.Students VALUES(...)表示您必须为每个列提供一个值 - 包括identity列 - 您无法为其提供值!

答案 1 :(得分:1)

不要尝试填写自动增量列。提供除自动增量列以外的列值。

假设Column-1自动递增,则查询将为

Insert into tableName(Column-2,column-3,..) Values(val-2,val-3,..);

保留自动增量列