Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > перехват ошибки из БД


Автор: shuttle 10.3.2011, 19:24
При добавлении новой записи в таблицу есть есть вероятность что продублируется ключевое значение - следовательно вылетит исключение, как можно это перехватить. 
Или проверять все записи предварительно перед добавлением?

 

Автор: jonie 10.3.2011, 20:38
Вы используете длинные транзакции? Или что? Т.е. как вы генерируете ключ? Если база генерирует то ошибок быть не может. Если же сами - то зависит от того что вы хотите при наличии дубликата ключа: ошибку или новый ключ без ошибки.

В любом случае Exception-ы ловятся с помощью catch инструкции

Автор: shuttle 10.3.2011, 21:07
Что то мало информации в вопросе (в первом посте) отобразил. 
Делаю так
Код

DataSet.Садок.AddСадокRow(тут запись которую добавляю);
MyTableTableAdapter.Update(DataSet);
DataSet.MyTable.AcceptChanges();


Иногда срабатывает нормально, иногда нет(пользователь может что угодно добавить в БД) вот тогда и велетает исключение. А зачем проверять все записи на поиск дублирующей, если ислючение и так мне об этом скажет.

Автор: jonie 10.3.2011, 21:11
shuttle, ну обычно в вашем случае база сама генерирует PK используя например автоинкремент. Не долджно быть в этом случае ошибок-то

Автор: Fyrklod 15.3.2011, 18:06
shuttle, а какое СУБД используете?
если мускул, то как смотрите на "Insert Ignore" вместо стандартного "Insert" добавления?
"Insert Ignore" если натыкается на уже существующее по уникальности значение, просто заменяет его (если конечно ваша задача это разрешает)


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)