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

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

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

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

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


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