Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, 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.
Номально приведите тип и все заработает.