Возможно ли получить значение столбца IDENTITY при вставке, используя SqlCommandBuilder (без использования Stored Proc)?

К вашему сведению: я работаю на Dotnet 3.5 SP1

Я пытаюсь получить значение столбца идентификаторов в моем наборе данных после выполнения обновления (используя SqlDataAdapter и SqlCommandBuilder). После выполнения SqlDataAdapter.Update (myDataset) я хочу прочитать автоматически назначенное значениеmyDataset.tables(0).Rows(0)("ID"), но это System.DBNull (несмотря на то, что строка была вставлена).

(Примечание: я не хочу явно писать новую хранимую процедуру для этого!)

Один метод часто публикуетсяhttp://forums.asp.net/t/951025.aspx изменяет SqlDataAdapter.InsertCommand и updatedRowSource следующим образом:

SqlDataAdapter.InsertCommand.CommandText += "; SELECT MyTableID = SCOPE_IDENTITY()"
InsertCommand.UpdatedRowSource = UpdateRowSource.FirstReturnedRecord

Видимо, в прошлом это, казалось, работало для многих людей, но не работает для меня.

Другая техника:http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=619031&SiteID = 1 Безразлично»Для меня это тоже не работает, так как после выполнения SqlDataAdapter.Update коллекция SqlDataAdapter.InsertCommand.Parameters сбрасывается в исходное состояние (теряется дополнительный добавленный параметр).

Кто-нибудь знает ответ на это ???

Ответы на вопрос(13)

Ваш ответ на вопрос