SQLIte查询返回空游标

dei*_*988 1 database sqlite android cursor

我正在尝试使用此查询从Android中的SQLite数据库中获取数据.

Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = 1 ", null);
Run Code Online (Sandbox Code Playgroud)

但是,如果光标返回空,则存在值为1的taskId.

如果我这样做

Cursor cursor = db.rawQuery("SELECT * FROM Task", null);
Run Code Online (Sandbox Code Playgroud)

我的光标包含所有值 - 包括值为1的taskId.

我也尝试了以下所有命令,它们都没有工作:

Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = " + 1, null);
Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = " + "'1'", null);
Cursor cursor = db.rawQuery("SELECT * FROM Task where taskId = ?", new String[]{"1"});
Run Code Online (Sandbox Code Playgroud)

taskId是Integer类型,也是用Text试过的,也没用.

有没有我没考虑过的事情?帮助将非常感谢!

编辑:创建数据库的代码:

CREATE TABLE Task + " (" +
        _id INTEGER PRIMARY KEY," +
        "taskDescription TEXT, +                
        "taskId INTEGER," +
        "taskName TEXT" + 
        "PreviousTaskID " + "REFERENCES " + "PreviousTasks " + 
        "(" + PreviousTasks._ID + "))"
Run Code Online (Sandbox Code Playgroud)

dip*_*ali 7

Cursor cursor = null;
String Query ="SELECT * FROM Task where taskId = 1 ";
cursor = sqldb.rawQuery(Query, null);

if (cursor != null && cursor.moveToFirst()) {
  do {
    // ...
  } while (cursor.moveToNext());

  cursor.close();
}
Run Code Online (Sandbox Code Playgroud)

我希望它对你有用..