У меня есть 5 текстовых полей:
<TextBox Name="txbFirstName" />
<TextBox Name="txbLastName" />
<TextBox Name="txbCity" />
<TextBox Name="txbAddress" />
<TextBox Name="txbPhone" />
Я хочу генерировать простые операторы SELECT, используя текстовые поля ввода. Для этого я использую параметры и AddWithValue:
database.SetQuery("SELECT * FROM tblCustomer WHERE FirstName = @FirstName AND LastName = @LastName AND City = @City AND Address = @Address AND Phone = @Phone;");
database.sqlCommand.Parameters.AddWithValue("@FirstName", txbFirstName.Text);
database.sqlCommand.Parameters.AddWithValue("@LastName", txbLastName.Text);
database.sqlCommand.Parameters.AddWithValue("@City", txbCity.Text);
database.sqlCommand.Parameters.AddWithValue("@Address", txbAddress.Text);
database.sqlCommand.Parameters.AddWithValue("@Phone", txbPhone.Text);
Теперь это работает просто отлично, но я хочу, чтобы, если ввод в текстовое поле был пустым, обрабатывать его с помощью NULL. Но, насколько я знаю, нельзя использовать «= NULL» в запросе, вместо этого следует использовать «IS NULL», то есть я не могу написать что-то вроде этого:
if (txbCity.Text == "")
database.sqlCommand.Parameters.AddWithValue("@City", null);
else
database.sqlCommand.Parameters.AddWithValue("@City", txbCity.Text);
Можно ли передать "IS NULL" параметру с кодом? Так что, если txbCity и txbAddress были нулевыми, например:
- Имя = Джон
- Фамилия = Доу
- Город = ""
- Address = ""
- Телефон = 812-393-8144
Я бы хотел, чтобы мой запрос выглядел так:
SELECT * FROM tblCustomer WHERE FirstName = "John" AND LastName = "Doe" AND City IS NULL AND Address IS NULL AND Phone = "812-393-8144";