如何测试游标在 SQLite 数据库查询中是否为空

新手上路,请多包涵

我有一个由以下代码创建的 SQL 表:

 public void onCreate(SQLiteDatabase db) {
    db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
        + " INTEGER PRIMARY KEY AUTOINCREMENT, " + SUBJECT
        + " TEXT NOT NULL," + TOPIC + " TEXT NOT NULL, "
        + LECTURENUMBER + " TEXT NOT NULL, " + PAGENUMBER
        + " TEXT NOT NULL, " + DATE + " TEXT NOT NULL, " + _DATA
        + " TEXT NOT NULL);");
}

我查询表如下:

 String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
    + " GROUP BY " + SUBJECT + ";";

Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);

问题是如果游标为空(即表未存储任何值)我必须启动活动 A,如果游标不为空(即表已填满)则必须启动活动 B。

我找不到可以告诉我表是否为空的方法。我曾尝试使用 Log 如下:

 private void showSubjectsOnList() {
    String sql = "SELECT " + _ID + "," + SUBJECT + " FROM " + TABLE_NAME
        + " GROUP BY " + SUBJECT + ";";

    Cursor cursor = subjects.getReadableDatabase().rawQuery(sql, null);

    Log.d("Events",Integer.toString(cursor.getCount()));
    if(cursor.isNull(0)!=false){
        cursor.close();
        subjects.close();
        startActivity(new Intent(this,OpenScreen.class));
    }
}

但是 LOG 显示 1,如果表是空的……再次显示 1,如果表有 1 个条目……它显示 2,如果表有两个条目等等。

你能建议一些方法来解决我的问题,即根据光标是否为空来启动不同的活动。

原文由 Waneya Iqbal 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 519
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题