1

テーブルにレコードを挿入します。.insert() が新しい行 ID を返し、その ID を使用してクエリを実行したため、成功しました。IT 成功、行が返されました

しかし、SELECT * FROM TABLE (どこにも原因がない) でクエリを実行すると、空のカーソルが返されます!

この問題を解決するのを手伝ってください

挿入方法はこちら

public String insertCategory(String name, int color) {
    SQLiteDatabase db = getWritableDatabase();

    ContentValues cv = new ContentValues();
    cv.put(COLUMN_NAME, name);
    cv.put(COLUMN_COLOR, color);

    long id;
    try {
        id = db.insertOrThrow(TABLE_CATEGORIES, null, cv);
    } catch (Exception e) {
        return null;
    }

    Cursor row = getRowById(db, TABLE_CATEGORIES, id, new String[] {
            COLUMN_ID, COLUMN_NAME });
    if (row.getCount() > 0) {
        if (row.moveToNext()) {
            return row.getString(row.getColumnIndex(COLUMN_NAME));
        } else
            return null;
    } else
        return null;
}

これは、原因を照会するために使用する方法です

private Cursor getRowById(SQLiteDatabase db, String table, long id,
        String[] columns) {
    Cursor cursor = db.query(table, columns, COLUMN_ID + " = ?",
            new String[] { "" + id }, null, null, null);
    return cursor;
}

最後に、すべての行のクエリに使用する方法を次に示します

public Cursor getAllCategories() {
    SQLiteDatabase db = getWritableDatabase();
    Cursor cursor = db.query(TABLE_CATEGORIES, null, null, null, null,
            null, null);

    db.close();
    return cursor;
}

助けてくれてありがとう

4

0 に答える 0