Проверка на пустые значения

tasha klemer
Дата: 21.07.2014 16:20:30
Доброго дня, подскажите идею как лучше реализовать провекру на пустоту (не измененость) элементов управления...
т.е. пользователь хотел что нить ввести новове в базу, но отвелкся или нечаяно брякнул по [ок] при неизмененых полях...чтоб такие записи не заводились в базу
Shocker.Pro
Дата: 21.07.2014 16:37:28
Вы забыли:
- указать технологию, с которой вы работаете и среду разработки
- указать технологию доступа к БД
- рассказать, каким образом организован пользовательский интерфейс, почему при повторном нажатии ОК создается новая запись, а не пересохраняется старая
tasha klemer
Дата: 21.07.2014 16:53:13
Извините.... работаю с VB.net + SQL Server
Доступ к данным осуществляю через ADO.net( SQLDataAdapter)
Вставку и обновление данных через параметизированные обьекты
По 3 вопросу разьяснение следующие....
есть грид+ различные эл.управления навешанны на соотвествующие в гриде столбцы....
расматриваю ситуацию когда пользователь захотел создать новую запись( поэтому при нажатии на ок происходит добавление новой записи) но по тем или иным причинам его отвлекли, забыл, устал.... или просто решил побалываться... и не введя ни одного значения нажал [ок] вот мне и инетерсно как грамотнее сделать чтоб данные пустые значения не зановились...
Можно конечно сделать проверку на nothing оr "" or 0 для каждого элемента, ввести глобальную переменную, изменить ее значение в случае изменения значений эл. управления и в случае изменения ее начального ззначния(гл.переменной) делать либо insert либо окончание вставки(только такая мысля по этому поводу)....но грид не единственный....
Shocker.Pro
Дата: 21.07.2014 17:04:58
хорошо, а если пользователь создал новую запись, вписал туда что-то, потом стер и сохранил запись - как поможет от этого глобальная переменная?

У вас неправильный подход - вы не должны разрешать пользователю заносить невалидные данные в базу данных. Так что валидацию вводимых данных делать НАДО и торг (типа грид не единственный) здесь не уместен (с)
tasha klemer
Дата: 21.07.2014 17:22:40
Shocker.Pro
У вас неправильный подход (с)

поээтому и справшиваю - как правильнее сделать....


Shocker.Pro
У вы не должны разрешать пользователю заносить невалидные данные в базу данных. Так что валидацию вводимых данных делать(с)


а с этого момента можно поподробней??? что куда и зачем.... какие способы есть ... над этим голову и ломаю...
Shocker.Pro
Дата: 21.07.2014 17:32:16
Я лишь об этом:
tasha klemer
Можно конечно сделать проверку на nothing оr "" or 0 для каждого элемента, ввести глобальную переменную, изменить ее значение в случае изменения значений эл. управления и в случае изменения ее начального ззначния(гл.переменной) делать либо insert либо окончание вставки(только такая мысля по этому поводу)....но грид не единственный....
не надо размышлять о том, проверять данные, не проверять данные, тут вопрос даже не стоит - проверять!

Что касается конкретики - тут коллеги подскажут, тем более вы так и не сказали главного... используете, видимо, WinForms, грид вы также не назвали.
tasha klemer
при нажатии на ок происходит добавление новой записи
собственно, в этом месте и должна быть проверка
igr_ok
Дата: 22.07.2014 12:29:21
tasha klemer,

Способы валидации.
1. Добавляем проверочный код в событие, которое происходит после редактирования ячейки (CellValueChanged)
2. Настройка в свойствах столбца грида. Как простой пример, можно указать максимальное кол-во символов в строке. Я работаю с devexpress, там вообще можно задать маску или Regex и указать, допустимо ли null значение.
3. Привязать грид к типизированному DataSet. Тогда валидация происходит автоматом.