Как: представлять NULL в запросах SQLite - PullRequest
1 голос
/ 05 января 2011

У меня есть приложение базы данных winforms, использующее SQLite, написанное на C #. Я пытаюсь выполнить некоторые запросы SQLite с помощью оболочки C #, но у меня возникают проблемы с запросом, когда я проверяю значения 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();
        }
    }

Запрос вообще ничего не возвращает, когда он должен возвращать несколько записей. Правильно ли я обрабатываю пустые чеки? Я нашел несколько других постов, которые используют WHERE (VAR IS NULL) вместо использования equals. Я пробовал и то и другое, но не уверен, как обращаться с «не равно», когда я использовал «IS» вместо «равно». У кого-нибудь есть понимание?

Спасибо!

Ответы [ 2 ]

5 голосов
/ 05 января 2011

Вы хотите использовать IS NULL и IS NOT NULL при сравнении равенства / неравенства с нулем.

1 голос
/ 05 января 2011

Вы уже правильно поняли - для сравнения NULL вы должны использовать var is NULL.если вы хотите сравнить на неравенство, используйте var is not NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...