Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, Entity Framework
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
8 / 8 / 0
Регистрация: 18.09.2015
Сообщений: 58
1

DatagridView-обработка ошибки ввода

13.10.2015, 14:23. Показов 3147. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Возникло два вопроса:
1) Данные вносятся через DatagridView (Связка Dataset,BindingSource,Datagrid). В таблице есть ключевые поля.
Как мне сделать так, чтобы , если пользователь вводит новую строку и не ввел данные в ключевые поля и пытается перейти на другую строку, то программа бы выдавала предупреждение и фокус передавался этой ячейке.
При обработке события DataError сообщение показываю, но дальше происходит отмена редактирования и вся строка исчезает. А нужно , чтобы ошибочная ячейка переходила в режим редактирования.
2) Как из System.Data.NoNullAllowedException исключения получить имя колонки таблицы в которой нарушено ограничение?
Заранее спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.10.2015, 14:23
Ответы с готовыми решениями:

Обработка ошибки ввода Edit
Подскажите пожалуйста, есть код на обработку ошибки если значение в edit1 больше чем в DBEdit1 то...

Обработка ошибки ввода чисел
Подскажите, пожалуйста, как сделать повторный ввод в случае ошибки: 1) Если вместо количества строк...

Контроль ввода даты и выдача сообщения в случае ошибки неверного ввода
Здравствуйте! У меня есть такая вот форма(скрин ниже). Смысл в том, что если пользователь введет...

Контроль ввода даты в MaskEdit и выдача сообщения в случае ошибки неверного ввода
Всем доброго дня! Использую MaskEdit для ввода даты формат: dd/mm/yyyy Помогите написать...

3
3 / 3 / 6
Регистрация: 16.10.2015
Сообщений: 19
25.10.2015, 11:43 2
Как по мне, то добавление новой записи можно организовать через TextBox и если нужно другие контролы (создать фому добавления записи). После ввода информации, нажатие кнопки "Добавить" и проверка ее. А вот редактирование производить в самом DataGridView и проверка ключевых полей через событие CellEndEdit.
0
3 / 3 / 2
Регистрация: 30.07.2017
Сообщений: 223
22.08.2017, 15:32 3
Добрый день!
У меня вопрос на эту же тему с небольшой вариацией. Обрабатываю событие DataError для исключения некорректного ввода данных пользователем в DataGridView.
Вопрос 1: (e.Context == DataGridViewDataErrorContexts.Parsing) не true, т.к. DataGridViewDataErrorContexts одновременно и Parsing и Commit, как корректно проверить значение e.Context? Что-то вроде (DataGridViewDataErrorContexts.Parsing in e.Context)?
Вопрос 2: проверка проходит нормально (на несоответствие типов), а, если скажем, я хочу, чтобы пользователь в столбец с данными типа double вводил только неотрицательные значения? Как это проверить? Тоже в DataError или в других событиях?

Добавлено через 15 секунд
Добрый день!
У меня вопрос на эту же тему с небольшой вариацией. Обрабатываю событие DataError для исключения некорректного ввода данных пользователем в DataGridView.
Вопрос 1: (e.Context == DataGridViewDataErrorContexts.Parsing) не true, т.к. DataGridViewDataErrorContexts одновременно и Parsing и Commit, как корректно проверить значение e.Context? Что-то вроде (DataGridViewDataErrorContexts.Parsing in e.Context)?
Вопрос 2: проверка проходит нормально (на несоответствие типов), а, если скажем, я хочу, чтобы пользователь в столбец с данными типа double вводил только неотрицательные значения? Как это проверить? Тоже в DataError или в других событиях?
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
22.08.2017, 17:01 4
1. Посмотрите, может быть есть событие Validate() - если есть, то попробуйте через него.
2. Я бы сделал маску для поля вместо постобработки.
0
22.08.2017, 17:01
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.08.2017, 17:01
Помогаю со студенческими работами здесь

Отмена ввода и повтор ввода в DataGridView
Всем привет!!! В DataGridView подключенному к Access провожу следующее действия: добавление и...

При повторном появлении ошибки обработка ошибки не срабатывает
Логика: - Пользователь. Нажимает кнопку; - Код . Создаёт "Recordset" "rstStud"(студенты) и...

Проверка ввода в DataGridView
Здравствуйте. Почему-то не работает код, который разрешает вводить в DataGridView только числа и...

Ограничения ввода в DataGridView
Необходимо, чтобы при редактировании (или вводе) значений в ячейках DataGridView, имеющих...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как подключить JavaScript файл в другом JavaScript файле
InfoMaster 20.01.2025
В современной веб-разработке организация кодовой базы играет ключевую роль в создании масштабируемых и поддерживаемых приложений. Модульность и правильное структурирование кода стали неотъемлемыми. . .
Как откатить изменения в исходниках, не внесенные в Git
InfoMaster 20.01.2025
При работе с системой контроля версий Git разработчики часто сталкиваются с необходимостью отменить внесенные изменения в исходном коде. Особенно актуальной становится ситуация, когда изменения еще. . .
В чем разница между px, in, mm, pt, dip, dp, sp
InfoMaster 20.01.2025
В мире цифрового дизайна и разработки интерфейсов правильный выбор единиц измерения играет ключевую роль в создании качественного пользовательского опыта. История развития систем измерений для. . .
Как изменить адрес удалённого репозитория (origin) в Git
InfoMaster 20.01.2025
В терминологии Git термин origin является стандартным именем для основного удаленного репозитория, с которым взаимодействует локальная копия проекта. Когда разработчик клонирует репозиторий с. . .
Как переместить последние коммиты в новую ветку (branch) в Git
InfoMaster 20.01.2025
При работе над проектом часто возникают ситуации, когда необходимо изолировать определенные изменения от основной линии разработки. Это может быть связано с экспериментальными функциями, исправлением. . .
Как вернуть результат из асинхронной функции в JavaScript
InfoMaster 20.01.2025
Асинхронное программирование представляет собой фундаментальную концепцию в JavaScript, которая позволяет выполнять длительные операции без блокировки основного потока выполнения программы. В. . .
Какой локальный веб-сервер выбрать
InfoMaster 19.01.2025
В современной веб-разработке локальные веб-серверы играют ключевую роль, предоставляя разработчикам надежную среду для создания, тестирования и отладки веб-приложений без необходимости использования. . .
Почему планшеты и iPad уже не так популярны, как раньше
InfoMaster 19.01.2025
Эра революционных инноваций История планшетов началась задолго до того, как эти устройства стали привычными спутниками нашей повседневной жизни. В начале 1990-х годов появились первые прототипы,. . .
Как самому прошить BIOS ноутбука
InfoMaster 19.01.2025
BIOS (Basic Input/ Output System) представляет собой важнейший компонент любого компьютера или ноутбука, который обеспечивает базовое взаимодействие между аппаратным и программным обеспечением. . .
Какой Linux выбрать для домашнего компьютера
InfoMaster 19.01.2025
Современные реалии выбора операционной системы В современном мире выбор операционной системы для домашнего компьютера становится все более важным решением, которое может существенно повлиять на. . .
Как объединить два словаря одним выражением в Python
InfoMaster 19.01.2025
В мире программирования на Python работа со словарями является неотъемлемой частью разработки. Словари представляют собой мощный инструмент для хранения и обработки данных в формате "ключ-значение". . . .
Как без исключения проверить существование файла в Python
InfoMaster 19.01.2025
При разработке программного обеспечения на Python часто возникает необходимость проверить существование файла перед выполнением операций с ним. Это критически важная задача, которая помогает избежать. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru