【发布时间】:2011-01-05 03:21:54
【问题描述】:
我有一个使用 C# 编写的 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”而不是“equals”时,我不确定如何处理“not equals”。有人有什么见解吗?
谢谢!
【问题讨论】:
-
@Anthony, Femaref:谢谢你们!更改为 IS 和 IS 无效。 :)