Возможно ли получить значение столбца 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 сбрасывается в исходное состояние (теряется дополнительный добавленный параметр).
Кто-нибудь знает ответ на это ???