Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как в поле впихнуть DBNull? / 4 сообщений из 4, страница 1 из 1
20.11.2003, 23:45
    #32330820
Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в поле впихнуть DBNull?
Работаю с ADO.NET на C#.
Использую Access-базу (*.mdb).

Для некоторых полей в схеме указано:
Пустые строки: да
Обязательное поле: нет

Проблема заключается в том, что при редактировании этих полей DataGrid не дает возможность удалить их содержимое, не смотря на то, что для колонки установлено свойство AllowDBNull = true. Например, в поле UserName у меня находится "Вася Пупкин". Я пытаюсь в гриде очистить эту ячейку и перейти к следующей записи, а эта сволочь восстанавливает значение "Вася Пупкин". То есть, изменить на другое можно, а оставить пустым — фиг вам.

Кто сталкивался с такой хренью, подскажите куда рыть!
...
Рейтинг: 0 / 0
21.11.2003, 10:57
    #32331112
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в поле впихнуть DBNull?
для grid'а - все просто (как и предыдущих версиях от МС): Сtrl + 0
для текстбоксов и др. контролов - надо отслеживать нажатие этой комбинации клавиш и руками заносить DBNull.Value в источник данных
...
Рейтинг: 0 / 0
22.11.2003, 12:58
    #32332098
Петрович
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в поле впихнуть DBNull?
Кузя, спасибо, я не знал об этой комбинации.

Жаль, что DataColumn при очистке ячейки в Гриде обычным способом не генерирует событие ColumnChanged . :(
...
Рейтинг: 0 / 0
22.11.2003, 15:07
    #32332152
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как в поле впихнуть DBNull?
почему же не генерируется ? очень даже генерируется. только это событие происходит при занесении данных из буфера грида в источник. а вот сам перенос просходит или при смене строки или при насильственном завершении редактирования данных в текущей строке по EndCurrentEdit(); чтобы отловить момент нажатия нужной комбинации клавиш в колонке, подпишись на событие this.dataGridTextBoxColumn1.TextBox.KeyPress. в самом обработчике:
Код: plaintext
1.
e.Handled=true;
this.dataGridTextBoxColumn1.TextBox.Text=this.dataGridTextBoxColumn1.NullText;
так можно задействовать любую комбинацию для занесения DBNull
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как в поле впихнуть DBNull? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]