android - 游标返回 null

标签 android sqlite cursor

public String getContact(String searchName) {
    SQLiteDatabase db = this.getReadableDatabase();

    String[] args = { searchName };

    Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_MOVIES
            + " WHERE name =? ", args);

    String iName = null, iDiretor = null, iGenre = null;

    cursor.moveToFirst();
    while (!cursor.isAfterLast()) {
        iName = cursor.getString(cursor.getColumnIndex(KEY_NAME));
        iDiretor = cursor.getString(cursor.getColumnIndex(KEY_DIRECTOR));
        iGenre = cursor.getString(cursor.getColumnIndex(KEY_GENRE));
        cursor.moveToNext();
    }

    cursor.close();

iName 变量工作正常,但其他两个变量返回空值。有帮助吗?

最佳答案

使用 SQLiteDatabase 查询方法而不是 rawQuery 以获得最佳结果。

db.query(TABLE_MOVIES, null, "name = ?", args, null);

这是首选,因为 rawQuery 很容易搞砸并且不能防止 SQL 注入(inject)。

关于android - 游标返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11633964/

相关文章:

mysql - 使用 MySQL : Compare values in two consecutive records in a table using a timestamp field

java - Picasso 在 Android 10 中不工作。为什么?

Android HERE api 绘制许多 MapMarkers 很慢

android - 如何将资源传递给图书馆项目?

android - Android 中的 SQLIte 来自 Assets 文件夹

android - Android 上的 SQLite : insertWithOnConflict() returning ever-increasing results for same data sets

android SQLite 不遵守 "not null"约束

java - 如何sqlite + listview + onListItemClick启动新的Activity?光标读取错误

android - 无法按时间戳对 firebase 实时数据库中的数据进行排序

选择 Java DB 以获得更好的性能