【问题标题】:How to: Representing NULL in SQLite queries如何:在 SQLite 查询中表示 NULL
【发布时间】: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 无效。 :)

标签: c# winforms sqlite


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2013-01-10
      • 1970-01-01
      • 2017-11-27
      • 1970-01-01
      • 1970-01-01
      • 2011-07-01
      相关资源
      最近更新 更多