Вставка табличного адаптера ASP.NET не возвращает правильное значение идентификатора - PullRequest
1 голос
/ 10 августа 2009

В моем коде веб-страницы ASP.NET для Visual Studio 2008 я вызываю процедуру добавления в табличном адаптере SQL следующим образом.

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 Ответ

3 голосов
/ 10 августа 2009

ExecuteNonQuery возвращает количество затронутых строк. Вместо этого вы захотите использовать ExecuteScalar ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...