| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > пустое значение через textbox |
| Автор: Ana1oliy 15.5.2011, 18:26 |
| Всем доброго времени суток! Имеется на форме TextBox, связанный с BindingSource. Если взамен текущего значения ввести пустую строку, т.е. удалить весь текст, TextBox не отдаёт фокус. Тип поля, с которым связан этот TextBox, числовой, поле не обязательное, база данных access. Собстенно, почему так происходит и как мне можно ввести в поле пустое значение? |
| Автор: Экскалупатор 15.5.2011, 19:42 |
| Ana1oliy, может как то более конкретизируем проблему? а я кому то подарил свой шаманский бубен в связи с чем у меня пропал дар ясновидения. не осмеливаюсь спросить почему вопрос про текстбокс задается в ветки про базы данных, я думаю вразумительного ответа не дождусь. что значит текстбокс не отдает фокус? кто писал приложение? может быть в обработчике события текстбокса установлено что он не может быть пустым и на него постоянно возвращается фокус. |
| Автор: -Mikle- 15.5.2011, 20:13 |
| |
| Автор: Voyager 16.5.2011, 00:13 | ||
Попробуйте событие Binding.Parse
|
| Автор: Ana1oliy 16.5.2011, 04:07 | ||||||||
Экскалупатор
потому что проблема скорее всего не в самом тексбоксе, а в связанном с ним компоненте байндингсурс.
Это значит что при щелчке мыши на каком либо другом компоненте (текстбоксе, кнопке или чём-то ещё) фокус ввода остается на данном текстбоксе и компоненты никак не реагируют на действия пользователя, не реагируют даже кнопки управления окном.
Я.
Попробуем. Итак, кинул на форму текстбокс. Создал соединение с БД, всё как положено. связал свойство "текст" текстбокса через DataBindings с полем некоторой таблицы. Тип поля - число, поле не обязательное, т.е. может принимать null. Запускаю на выполнение и если сотру текст, записанное туда число, или что-то запишу, а потом сотру, случается указанная выше проблема. Если же связать его с полем БД, которое имеет текстовый тип, то таких проблем не наблюдается. Никаких обработчиков событий не установлено. Голый текстбокс с параметрами по умолчанию. Gluttton Да, должно, но ведь при связи текстбокса с БД, текст, если это возможно сам преобразуется к нужному типу. Если поле числовое, то в число нужного типа, если дата, то в дату. И вместо пустой строки, думаю, в БД тоже должно уходить null. Да и обычно если DataSet не устраивает, то что ему пихают, он ругается, а тут молчит. Еще я пробовал обрабатывать событие textChanged и если имеем пустую строку записывать в нужное поле таблицы датасета DBNull.Value, но не помогло, да и большие сомнения в правильности подхода. Попробую то, что предложил Voyager Voyager Большое спасибо, буду пробовать. |