2011-01-05 72 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