Проверка набора данных для типа (C # .NET) - PullRequest
2 голосов
/ 25 января 2010

Я работаю с проверкой наборов данных в моем проекте. Я делаю проверку, когда событие DataTable_ColumnChanged запускается в частичном классе dataTable, и оно выполняет свою работу, но я хотел бы также проверить несоответствие типов данных на уровне dataSet, а не в пользовательском интерфейсе, чтобы предоставить пользовательское сообщение об ошибке. Если [someID] ожидает число, но кто-то вводит строку в текстовое поле, например.

Проблема в том, что dataSet обрабатывает этот тип ошибки где-то до того, как событие DataTable_ColumnChanged сработает, и никогда не изменяет столбец, я так понимаю.

Так что вопрос в том, где и как его перехватить. Я хочу обработать это в частичном классе dataTable, обернуть в свойство или что-то, но VS сгенерировал кучу кода, и я не знаю, где искать :) Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 января 2010

Это не совсем ответ на ваш вопрос, но когда вы упомянули, что VS создает кучу сумасшедшего, это заставило меня подумать, что вы, вероятно, используете функцию перетаскивания для выполнения этой задачи. Отчасти поэтому, как вы уже указали, вы не можете понять, что происходит.

Этот codegen от студии делает его более сложным для вас. Если бы я предложил с учетом удаления этого автоматически сгенерированного набора данных и создания собственного набора типизированных данных, чтобы заменить его, если вы находитесь в начале своего проекта. Если вы находитесь в положении, когда вы можете внести это изменение в более вменяемый набор данных, это поможет вам не попадать в ситуации, в которых вы находитесь сейчас.

Более того, если у вас есть время, вы можете рассмотреть проект, который вообще не использует наборы данных, но это, безусловно, гораздо больше, чтобы взять на себя. Большинство людей используют решение ORM, такое как NHibernate или что-то подобное, для того, чтобы делать то, для чего мы использовали DataSets. Очевидно, что если есть время или внешние факторы, которые делают это, вы должны использовать DataSets затем забудьте об этом ORM - но подумайте об удалении автоматически сгенерированного набора данных и создании вместо него типизированного набора данных. Вам будет намного легче.

0 голосов
/ 25 января 2010

Событие ColumnChanging? \

События набора данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...