Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перехват ошибки из БД 
:(
    Опции темы
shuttle
Дата 10.3.2011, 19:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



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

 
--------------------
PM MAIL   Вверх
jonie
Дата 10.3.2011, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



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

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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
shuttle
Дата 10.3.2011, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 9.4.2008

Репутация: нет
Всего: нет



Что то мало информации в вопросе (в первом посте) отобразил. 
Делаю так
Код

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


Иногда срабатывает нормально, иногда нет(пользователь может что угодно добавить в БД) вот тогда и велетает исключение. А зачем проверять все записи на поиск дублирующей, если ислючение и так мне об этом скажет.
--------------------
PM MAIL   Вверх
jonie
Дата 10.3.2011, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



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


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Fyrklod
Дата 15.3.2011, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 141
Регистрация: 17.10.2006

Репутация: нет
Всего: 1



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


--------------------
Зачем компьютеры пищат, когда нажимаешь сразу много клавиш? Чтобы будить уснувших на клавиатуре программистов!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.1602 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.