在我的Visual Studio 2008 ASP.NET网页代码隐藏中,我在SQL tableadapter中调用了一个add例程,如下所示。
NewLabID = LabItem.AddLaborItem(ThisWONum, TechID, DateTime.Now, DateTime.Now, "Working", "");
正确添加记录,但每次“NewLabID”返回1,而不是实际的新LabID(LabID定义为int / identity)。自动生成的代码插入命令是
INSERT INTO [LaborDetail] ([WONum], [TechID], [StartDate], [StopDate], [OtherType], [OtherDesc])
VALUES (@WONum, @TechID, @StartDate, @StopDate, @OtherType, @OtherDesc);
SELECT LabID FROM LaborDetail WHERE (LabID = SCOPE_IDENTITY())
和调用它的自动生成的代码是:
returnValue = command.ExecuteNonQuery();
使用调试器逐步执行此操作,returnValue始终为1.上述命令是否应返回新的标识字段值?
答案 0 :(得分:3)
ExecuteNonQuery返回受影响的行数。您将需要使用ExecuteScalar()。