Re[3]: Получения id последней изменной записи в бд
От: vitz  
Дата: 02.10.06 12:00
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, vitz, Вы писали:


V>>Здравствуйте, exp131, Вы писали:


E>>>Добрый день!


E>>>Ситуация следующая, есть объект DataSet связанный с таблицей БД у которой есть поле id (автоинкементное). Вставляю в DataSet новую строку (естественно id не указываю). После этого вызываю метод Update(). Теперь нужно узнать id этой записи (т.е. какой id присвоил Sql сервер).


E>>>Заранее благодарен за ответ.


E>>>
данное сообщение получено с www.gotdotnet.ru

E>>>ссылка на оригинальное сообщение

V>>Для MS SQL есть пременная @@IDENTITY которая содержит последнее значение астоикремента (для БД !!!)
V>>IDENT_CURRENT('table_name') для таблицы

А>Спасибо, все работает, но есть небольшой глюк.


А>Написал хранимую процедуру которая добавляет запись в таблицу и возвращает текущий id. Запись в таблицу добавляется но, иногда возникает ошибка вот кусок кода:



А>
А>        orderSet.Tables["Заказы"].Rows.Add(newOrder);

А>        aOrders.Update(orderSet.Tables["Заказы"]); //запись в таблицу добавляется (проверял)

А>        OrderID = (int)newOrder["id"]; //но на эту строчку выдает ошибку "Specified cast is not valid.", хотя при 
А>                                       //повторном обращении все нормально - выдает id новой записи 

А>

Я вот сам не берусь судить с чем это связано, но Autoincrement поля (по дефолту) decimal.
Номально приведите тип и все заработает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.