2011-01-05 73 views
2

我有一个使用C#编写的SQLite的数据库winforms应用程序。我试图用C#包装器做一些SQLite查询,但是我在查询NULL值时遇到了一些问题。这是呼吁声明。如何在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”时如何处理“不等于”。任何人有任何见解?

谢谢!

+0

@Anthony,Femaref:谢谢你们!更改为IS和IS不工作。 :) – CODe 2011-01-05 03:30:05

回答

5

当要将等式/不等式与空比较时,您想要使用IS NULLIS NOT NULL

+0

表达在这里:[http://www.sqlite.org/lang_expr.html] sqllitedocumentation – 2013-01-13 17:19:03

1

你已经明白了 - 要比较NULL你必须使用var is NULL。如果你想比较不平等,使用var is not NULL