Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Получение идентификатора добавленной записи в FormView / 3 сообщений из 3, страница 1 из 1
13.09.2006, 17:40
    #33985130
Shevron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение идентификатора добавленной записи в FormView
На форме есть DataSource связанный с FormView. Подскажите алгоритм определения идентификатора (первичного ключа, по полю identity) добавленой записи.

Есть идея перехватить событие e DataSource Inserting и выполнить команду самостоятельно приписав в конец SELECT @@Identity и задав e.Cancel = true. Но как-то этот подход не воодушевляет.
...
Рейтинг: 0 / 0
14.09.2006, 12:41
    #33986677
Shevron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение идентификатора добавленной записи в FormView
Разве никто не сталкивался?
...
Рейтинг: 0 / 0
17.09.2006, 15:06
    #33992546
Shevron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Получение идентификатора добавленной записи в FormView
Можно связаться с хранимыми процедурами и получать из них идентификатор добавленной записи, но вариант не годится. Тот вариант, до которого мне удалось додуматься подходит вероятно только для MS SQL и для идентити первичных ключей и заключается в следующем:
1) В конец SQL запроса на создание записи на DataSource добавляется "; SELECT @NewElementID = @@IDENTITY"
2) В коллекцию InsertParameters добавляется <asp:Parameter Name="NewElementID" Type="Int32" Direction="Output" />
3) Перехватывается событие Inserted на DataSource где (int)e.Command.Parameters["@NewElementID"].Value даст идентификатор добавленной записи

Может имеются другие способы?
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Получение идентификатора добавленной записи в FormView / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]