有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java SQLite getCount()返回0

我试图通过Android Studio中的SQLite创建搜索历史。 当我尝试使用getCount()从SQLite DB获取信息时, 它一直返回0

我已经通过终端检查了数据库中是否有任何数据。 然而,它显示了有数据的结果。 请帮帮我

public String[][] getResult(){
        SQLiteDatabase db = getReadableDatabase();
        Cursor cursor = db.rawQuery("SELECT * FROM AlYak_History", null);

        Log.d("getCount", valueOf(cursor.getCount()));
        String[][] result = new String[cursor.getCount()][];
        cursor.moveToFirst();
        while(cursor.moveToNext()){
            for(int i = 0 ; i < 12 ; i ++){
                result[cursor.getPosition()][i] = cursor.getString(i+1);
            }
        }

        cursor.close();
        db.close();
        return result;
    }

共 (2) 个答案

  1. # 1 楼答案

    这个对我有用

    public int getResultCount() {
    String countQuery = "SELECT  * FROM " + TABLE_NAME;
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(countQuery, null);
    int cnt = cursor.getCount();
    cursor.close();
    return cnt;
    

    }

  2. # 2 楼答案

    您确定已连接到数据库吗?您的构造函数应该如下所示:

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
    

    它应该是String.valueOf()而不是valueOf