| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Обработка System.Data.Table.ConstraintException |
| Автор: defender777 17.11.2009, 18:44 |
| Здравствуйте. Проблема есть такая: На форме DataGridView,DataSet,BindingSource,BindingNavigator В DataSet единственный DataTable у него единственный Constraint (primary) На одно поле Например Name.Его можно изменять, но при нарушении этого Constraint Нужно отловить исключение и сообщить пользователю, что такое значение в Name уже есть Где и как обрабатывать исключения возникающие в Constraint,в случае когда работа происходит внутри компонентов в связке DataGridView,DataSet,BindingSource,BindingNavigator. (System.Data.Table.ConstraintException) Спасибо. |
| Автор: defender777 18.11.2009, 12:32 |
| Да конечно понятно что в Primary полях нужно добиваться уникальности и решать это на сервере и использовать там тип int (хотя в теории это вовсе не обязательно) Но как быть с Unique? Ведь это свойство поля в DataTable для того и устанавливается чтоб ОБЕСПЕЧИТЬ уникальность вводимых туда данных. Да оно и обеспечивает, только жестко пишет свое при возникающих ошибках. Да скажите вы используй try catch finally и лови там свои exceptions. Но постойте, а как же компонентная модель? Это же непоколебимый принцип. Да конечно во всех книжках мы видим как удобно соединять компоненты DataGridView,DataSet,BindingSource,BindingNavigator все отлично скорость торжествует. Но где тогда обрабатывать исключения? Как? Где в компонентах такая возможность? Выходит все принципы (удобные бесспорно) не обеспечены в самом каркасе ADO.NET? Что тогда уж спрашивать с рядовых. Или вообще получается лучше писать свой фреймворк? (текущий же не поправишь) Поправьте меня если не прав. Спасибо. |
| Автор: mrbrooks 18.11.2009, 15:47 | ||||
ключевое поле и уникальное - это не сколько разные вещи камрад. Не стоит их путать.
С первого захода сложно понять о чем суть, но тем не менее исключение - это скажем так - крайность. Любую неоднозначность должен решать программист. Не правильный подход - накидать всякой дичи, а затем заключить все это в тело исключения и возрадоваться. |