我有一个使用SQLite编写的SQLite数据库winforms应用程序。我正在尝试使用C#包装器执行一些SQLite查询,但是我在检查NULL值时遇到了一些问题。这是调用声明。
sqliteQuery.selectFromDatabase("*", "WHERE (FirstNotify = NULL) AND (SecondNotify != NULL) AND (ThirdNotify = NULL)");
这是它背后的代码。
public DataTable selectFromDatabase(String column, String filter)
{
string SQL = "SELECT " + column + " FROM SUBCONTRACTOR " + filter;
SQLiteCommand cmd = new SQLiteCommand(SQL);
cmd.Connection = connection;
SQLiteDataAdapter da = new SQLiteDataAdapter(cmd);
DataSet ds = new DataSet();
try
{
da.Fill(ds);
DataTable dt = ds.Tables[0];
return dt;
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return null;
}
finally
{
cmd.Dispose();
connection.Close();
}
}
当查询返回一些记录时,查询根本不返回任何内容。我正确处理NULL检查吗?我发现了一些其他帖子使用WHERE(VAR IS NULL)而不是使用equals。我已经尝试了两种,但我不确定当我使用“IS”而不是“等于”时如何处理“不等于”。有人有任何见解吗?
谢谢!
答案 0 :(得分:5)
在将等式/不等式与null进行比较时,您希望使用IS NULL
和IS NOT NULL
。
答案 1 :(得分:1)
你已经做对了 - 比较NULL
你必须使用var is NULL
。如果您想比较不平等,请使用var is not NULL
。