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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка System.Data.Table.ConstraintException, Как обработать ConstraintException 
:(
    Опции темы
defender777
Дата 17.11.2009, 18:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте.
Проблема есть такая:
На форме DataGridView,DataSet,BindingSource,BindingNavigator
В DataSet единственный DataTable у него единственный Constraint (primary)
На одно поле Например Name.Его можно изменять, но при нарушении этого Constraint
Нужно отловить исключение и сообщить пользователю, что такое значение в Name уже есть
Где и как обрабатывать исключения возникающие в Constraint,в случае когда работа происходит
внутри компонентов в связке DataGridView,DataSet,BindingSource,BindingNavigator.
(System.Data.Table.ConstraintException)
Спасибо.
PM MAIL   Вверх
KuMa1104
Дата 17.11.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

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



Цитата(defender777 @  17.11.2009,  18:44 Найти цитируемый пост)
Где и как обрабатывать исключения возникающие в Constraint,в случае когда работа происходитвнутри компонентов в связке DataGridView,DataSet,BindingSource,BindingNavigator.

Лучше чтоб их вообще небыло.

А вообще try, catch, finali

Добавлено @ 20:13
defender777 исключения сами посебе очень медленно обрабатываються.

Кроме того ИМХО практически всегда можно обойтись без них.

Это сообщение отредактировал(а) KuMa1104 - 17.11.2009, 20:14


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
defender777
Дата 18.11.2009, 12:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Да конечно понятно что в Primary полях нужно добиваться уникальности и решать это на сервере
и использовать там тип int (хотя в теории это вовсе не обязательно)
Но как быть с Unique? Ведь это свойство поля в DataTable для того и устанавливается чтоб ОБЕСПЕЧИТЬ
уникальность вводимых туда данных. Да оно и обеспечивает, только жестко пишет свое при возникающих ошибках.
Да скажите вы используй try catch finally и лови там свои exceptions. Но постойте, а как же компонентная модель?
Это же непоколебимый принцип. Да конечно во всех книжках мы видим как удобно соединять компоненты
DataGridView,DataSet,BindingSource,BindingNavigator все отлично скорость торжествует.
Но где тогда обрабатывать исключения? Как? Где в компонентах такая возможность? Выходит все принципы
(удобные бесспорно)  не обеспечены в самом каркасе ADO.NET? Что тогда уж спрашивать с рядовых.
Или вообще получается лучше писать свой фреймворк? (текущий же не поправишь)
Поправьте меня если  не прав. Спасибо.

PM MAIL   Вверх
mrbrooks
Дата 18.11.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

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



Цитата(defender777 @  18.11.2009,  12:32 Найти цитируемый пост)
Да конечно понятно что в Primary полях нужно добиваться уникальности и решать это на сервере
и использовать там тип int (хотя в теории это вовсе не обязательно)
Но как быть с Unique?

ключевое поле и уникальное - это не сколько разные вещи камрад. Не стоит их путать.

Цитата(defender777 @  18.11.2009,  12:32 Найти цитируемый пост)
а скажите вы используй try catch finally и лови там свои exceptions. Но постойте, а как же компонентная модель?
Это же непоколебимый принцип. Да конечно во всех книжках мы видим как удобно соединять компоненты
DataGridView,DataSet,BindingSource,BindingNavigator все отлично скорость торжествует.
Но где тогда обрабатывать исключения? Как? Где в компонентах такая возможность? Выходит все принципы
(удобные бесспорно)  не обеспечены в самом каркасе ADO.NET? Что тогда уж спрашивать с рядовых.
Или вообще получается лучше писать свой фреймворк? (текущий же не поправишь)


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

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

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

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


 




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


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

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