ASP.NET tableadapter插入不返回正确的标识值

时间:2009-08-09 20:20:37

标签: c# asp.net sql-server

在我的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.上述命令是否应返回新的标识字段值?

1 个答案:

答案 0 :(得分:3)

ExecuteNonQuery返回受影响的行数。您将需要使用ExecuteScalar()。