ASP.NET SQL Server插入错误
所以我有两种说法:ASP.NET SQL Server插入错误,asp.net,sql,Asp.net,Sql,所以我有两种说法: string insertUserData = "INSERT INTO W711_User_Data(Network_ID, F_Name, M_Name, L_NAME, Badge, Telephone, Org_Code, Org_Name, Req_Head_Network_ID)Values(@networkID1, @firstName1, @middleName1, @lastName1, @badgeNumber1, @telephone1
string insertUserData = "INSERT INTO W711_User_Data(Network_ID, F_Name, M_Name, L_NAME, Badge, Telephone, Org_Code, Org_Name, Req_Head_Network_ID)Values(@networkID1, @firstName1, @middleName1, @lastName1, @badgeNumber1, @telephone1, @orgCode1, @orgName1, @myUserName1)";
string insertReservationData = "INSERT INTO W711_Reservation_Data(ID, Network_ID, EventTitle, StartDate, EndDate, Justification) Values(null, @networkID2, @eventTitle1, @startDate1, @endDate1, @justification1)";
第二个字符串中的网络id是与第一个表中的网络id的外键关系
问题是:当我在VS2010
中运行应用程序时,会出现以下错误:
当identity\u insert
设置为OFF
时,无法在表'W711\u Reservation\u Data'
中插入identity列的显式值
然后我在某个地方读到:
SET IDENTITY\u在上插入W711\u Reservation\u数据
但它也失败了,再次出现同样的错误!
请帮忙
谢谢
p、 美国sql server为什么要尝试插入null
作为ID
列的值?假设这是投诉的来源IDENTITY
列,那么您更可能需要将其从列列表中删除,并且不传入任何显式值。i、 e
INSERT INTO W711_Reservation_Data
(Network_ID, EventTitle, StartDate, EndDate, Justification)
Values
(@networkID2, @eventTitle1, @startDate1, @endDate1, @justification1)
如果您的id是一个标识(也称为从数据库自动生成的标识),只需不要在INSERT语句的任何位置列出id字段,而不是列名称和值列表:
要获取SQL Server生成的ID,请通过以下方式调用SCOPE_IDENTITY:
INSERT INTO W711_Reservation_Data(Network_ID, EventTitle, StartDate, EndDate, Justification) Values(@networkID2, @eventTitle1, @startDate1, @endDate1, @justification1)";
RETURN SCOPE_IDENTITY()
编辑:这是您两条语句中的第二条,我已经删除了ID和NULL…可能有两种可能性
1]
如果第一个表中的网络ID是自动生成的主键,则
在第一个表中插入数据。
然后从该表中获取最新的网络id
通过第二次查询传递该网络id
2] 。
若第二个表中的ID列是主键,则
不要在第二个查询中传递null。
要么自动生成,要么在查询中传递uniquer值。非常感谢mate…这确实有效!是的,该ID是使用标识(1,1)生成的。我曾经在mysql项目中使用过null技术,它很有效。再次感谢!对不起,有时候mysql有个坏习惯,现在可以了,谢谢