java - Android SQLLiteDataBase 游标返回 0 行

标签 java android sql database android-cursor

我这辈子都无法让游标返回任何数据。我已经验证了它们是数据库中的数据并且我的插入工作正常。官方错误是:

CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0

顶级声明:

private DatabaseHelper DBHelper;
private SQLiteDatabase db;

public DBAdapter(Context ctx) 
{
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
    this.db = this.DBHelper.getWritableDatabase();
}

我的功能:

public String getRandomEntry()
    {
    int rand;
    Random random = new Random();
    int numEntries = (int)this.getCount();

    if(numEntries == 0)
        return "ERROR: Database is empty.";
    rand = random.nextInt(numEntries);

    Cursor cursor = DBHelper.getWritableDatabase().rawQuery(
            "SELECT * FROM " + DATABASE_TABLE 
            + " WHERE " + COLUMN_A + " = " + 0, null);

    Log.i("numEntries", Integer.toString(numEntries));
    Log.i("rand", Integer.toString(rand));
    Log.i("cursor", Integer.toString(cursor.getCount()));

    cursor.moveToFirst();
    return cursor.getString(0);
}

我也试过这样捕获光标:

Cursor cursor = db.rawQuery(
            "SELECT * FROM " + DATABASE_TABLE 
            + " WHERE " + COLUMN_A + " = " + 0, null);

请说出你的想法!谢谢!!

最佳答案

这里似乎没有什么是随机的。看来您每次都在寻找值为 0 的 column_a。

我假设 column_a 没有任何值为 0 的东西。

关于java - Android SQLLiteDataBase 游标返回 0 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362572/

相关文章:

android - Proguard 在 Crashlytics 2.7.1 中崩溃

python - SQLAlchemy 和空 IN 子句

sql - 如何在数据工作室中按列分组

java - 如何实现深度Q学习梯度下降

java - Java 泛型中的奇怪删除

在 Raspberry Pi 上播放 Android Things 视频

android - 如何使用导航 Controller 设置抽屉导航并处理单个菜单项

mysql - 在 MySQL 中更改日期时间值

java - 我尝试在网页上查看小程序时收到 "class not found"错误

java - 记录器创建太多文件