Я не могу получить новое значение идентификатора из вставленной записи (через DataAdapter.Update) в моем DataRow.
Я использую набор данных со строгим типом в качестве DAL.Таблица, которую я хочу обновить, объединена с другими таблицами в SelectCommand, поэтому разработчик не может автоматически генерировать команды вставки / обновления / удаления, а также не может автоматически «обновлять таблицу данных» (s. http://msdn.microsoft.com/de-de/library/dex7k4dw%28v=VS.100%29.aspx).
).
Я пытался установить AutoIncrement = true / false для DataColumn первичного ключа, но результат тот же: последний MAX-ID + 1 вместо фактического идентификатора, сгенерированного базой данных (SQL-Server 2005 EP; тип данных pk: int, Is identity: yes, Identity Increment: 1).
Это будет неправильное значение, например, если другой экземпляр приложения вставит запись, которую первый экземпляр еще не знает, и, следовательно, генерирует идентификатор, который ужесуществует.
Чтобы получить новый идентификатор из базы данных, я добавил следующее к командному тексту моей команды вставки:
;SELECT CAST (SCOPE_IDENTITY() AS int) AS newIdRMA
Также я попытался добавить параметр-выход к его параметру-collection: ![enter image description here](https://i.stack.imgur.com/QDxva.jpg)
Это часть моего кода, который обновляет базу данных и устанавливает новый идентификатор (который не работает):
Me.dsRMA.RMA.AddRMARow(newRMA) ' adding new row to the (strong typed) DataTable '
numRowsUpdated = daRMA.Update(Me.dsRMA.RMA) ' update via DataAdapter and insert the new record in DB '
DirectCast(Page, Services).IdRma = newRMA.IdRMA ' this is not the actual value from DB but old Max-ID +1 '
Редактировать:
Это снимок экрана InsertCommand моего TableAdapter и его набора параметров: ![enter image description here](https://i.stack.imgur.com/cEkxn.jpg)
Заранее спасибо.