Вернуть пустую строку как NULL - PullRequest
0 голосов
/ 10 июня 2010

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

Вот что у меня сейчас.Пустые строки ничего не возвращают, потому что в таблице нет пустых полей.

SELECT * FROM dbo.Table WHERE ID = " & TextBox2.Text & " and And Field1 IN (" & Msg1 & ")

Как мне это кодировать?

Ответы [ 3 ]

1 голос
/ 10 июня 2010
 dim sql
 If (TextBox2.Text = null) Then
      sql = "SELECT * FROM dbo.Table WHERE ID is null and And Field1 IN (" & Msg1 & ")"
 Else
     sql = "SELECT * FROM dbo.Table WHERE ID = " & TextBox2.Text & " and And Field1 IN (" & Msg1 & ")"
 End If

См. Комментарий @John Saunders, вы рискуете получить инъекции sql.При передаче paremeter в sql-запрос обязательно используйте параметры , а не объединяющие строки.

1 голос
/ 10 июня 2010

Используйте оператор If. Когда текстовое поле пусто, вместо добавления значения текстового поля строка SQL должна содержать «ID is null».

If (TextBox1.Text = "") Then
   ' use Is Null in your sql statement 
Else
   ' use the textbox text value in your sql statement
End If

(Предполагается, что вы говорите о текстовом поле, а не о Msg1.)

0 голосов
/ 11 июня 2010
SELECT * FROM dbo.Table WHERE ID = " & TextBox2.Text & 
" And Field1 " & IIF(Trim(Msg1) = "", "IS NULL", "IN (" & Msg1 & ")")

Да, это грубо.
Не следует писать запрос в этом стиле.

РЕДАКТИРОВАТЬ: Исправлено.Пожалуйста, проверьте.

...