小编Joh*_*Doe的帖子

通过参数传递“ IS NULL”

我有5个文本框:

<TextBox Name="txbFirstName" />
<TextBox Name="txbLastName" />
<TextBox Name="txbCity" />        
<TextBox Name="txbAddress" />
<TextBox Name="txbPhone" />
Run Code Online (Sandbox Code Playgroud)

我想使用文本框输入生成简单的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);
Run Code Online (Sandbox Code Playgroud)

现在这可以正常工作,但是我想做的是如果文本框输入为空以使用NULL处理它。但据我所知,不能在查询中使用“ = NULL”,而应使用“ IS NULL”,这意味着我无法编写如下内容:

if (txbCity.Text == "")
    database.sqlCommand.Parameters.AddWithValue("@City", null);
else
    database.sqlCommand.Parameters.AddWithValue("@City", txbCity.Text);
Run Code Online (Sandbox Code Playgroud)

是否可以通过代码将“ IS NULL”传递给参数?因此,如果txbCity和txbAddress为空,例如:

  • 名=约翰
  • 姓氏=母鹿
  • 城市=“”
  • 地址=“”
  • 电话= 812-393-8144

我希望查询如下所示:

SELECT * FROM tblCustomer WHERE …
Run Code Online (Sandbox Code Playgroud)

c# sqlite wpf

5
推荐指数
1
解决办法
100
查看次数

标签 统计

c# ×1

sqlite ×1

wpf ×1