SQL вставка и проверка ввода значения не пусто - PullRequest
0 голосов
/ 20 июня 2011

У меня есть оператор вставки, который будет вставлять значения из текстовых полей. Теперь он работает нормально. Я хочу проверить, что текстовое поле не должно быть пустым с помощью SQL-запроса

Мой оператор вставки выглядит так:

INSERT INTO guestpasstypes(guestPasstype_Name)values('" + tbPassType.Text + "')"

Ответы [ 4 ]

1 голос
/ 20 июня 2011

Я вижу два решения

  • Проверьте 'tbPassType.Text' перед созданием SQL-запроса (рекомендуется)
  • Создайте проверочное ограничение в таблице 'guestpasstypes' следующим образом:

    ALTER TABLE dbo.guestpasstypes ДОБАВИТЬ ОГРАНИЧЕНИЕ CK_guestPasstype_Name CHECK ((LEN (guestPasstype_Name])> (0)))

(данный пример для MSSQL, но я надеюсь, что MySQL также имеет ограничители)

1 голос
/ 20 июня 2011

Установите значение guestPasstype_Name как NOT NULL и убедитесь, что MySQL работает в режиме соответствия SQL.Может работать следующее:

INSERT INTO guestpasstypes(guestPasstype_Name)values(
    IF('" + tbPassType.Text + "'='', NULL,'" + tbPassType.Text+"')"
1 голос
/ 20 июня 2011

Я также согласен с тем, что вам следует избегать вызова этого SQL из-за вероятности инъекционных атак, но если по какой-то причине вам действительно нужно это сделать, то это должно сработать:

"INSERT INTO guestpasstypes(guestPasstype_Name)
  select '" + tbPassType.Text + "' from dual where '" + tbPassType.Text + "' <> '';"
1 голос
/ 20 июня 2011

Используйте любой язык, который вы используете, чтобы получить текст из текстового поля, чтобы увидеть, является ли он пустым или нулевым. Большинство языков имеют эти проверки. (например: php; isempty ()) Кроме того, если вам не нужны пробелы, используйте также trim.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...