|
|
|
Где поймать NoNullAllowedException?
|
|||
|---|---|---|---|
|
#18+
Имеется форма, в ней DataSet и BindingSource, к нему привязано несколько текстбоксов. При изменении текущей строки в таблице происходит проверка ограничений, указанных в датасете - макс длина поля, внешний ключ, запрещены null и т.д. возникают соответствующие исключения. Например при попытке вставить значение null в столбец, в котором они запрещены, вылетает NoNullAllowedException. Возникает вопрос: его можно как-нибудь обработать? Где это нужно делать? Хочется запретить менять текущую строку, а пользователю выдать сообщение, или показать ошибку с помощью ErrorProvider. Если к BindingSource привязан DataGridView, в нем вызывается событие DataError и в нем можно сделать все необходимое. А что делать если DataGridView нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 15:26 |
|
||
|
Где поймать NoNullAllowedException?
|
|||
|---|---|---|---|
|
#18+
некогда проверять, посмотри что отлавливает BindingSource.DataError ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 15:37 |
|
||
|
Где поймать NoNullAllowedException?
|
|||
|---|---|---|---|
|
#18+
А можно по-подробнее? Как оказалось, DataGridView вызывает DataError только если изменение текущей строки вызвано самим DataGridView. Если с тем же BindingSource связан еще и BindingNavigator, и я нажимаю кнопку в нем, то обработчик не вызывается. Скорее всего в недрах DataGridView присутствует что-то вроде Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Судя по msdn необходимо написать обработчик DataSource.BindingComplete, но это событие почему-то не вызывается при возникновении исключения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2007, 16:10 |
|
||
|
Где поймать NoNullAllowedException?
|
|||
|---|---|---|---|
|
#18+
Если кому-то интересно - нашел решение . Как видно нормального способа нет :( Предлагается наследовать от BindingSource :( :( :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.06.2007, 01:18 |
|
||
|
|

start [/forum/topic.php?fid=17&fpage=94&tid=1352738]: |
0ms |
get settings: |
10ms |
get forum list: |
23ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 395ms |

| 0 / 0 |
