如何:在SQLite查询中表示NULL

时间:2011-01-05 03:21:54

标签: c# winforms sqlite

我有一个使用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”而不是“等于”时如何处理“不等于”。有人有任何见解吗?

谢谢!

2 个答案:

答案 0 :(得分:5)

在将等式/不等式与null进行比较时,您希望使用IS NULLIS NOT NULL

答案 1 :(得分:1)

你已经做对了 - 比较NULL你必须使用var is NULL。如果您想比较不平等,请使用var is not NULL