1

SimpleCursorAdapter を使用できるように、rawquery を使用して主キーにエイリアスを使用してクエリを実行し、それを _id にしようとしています。これが私が持っているものです。

String sel = DatabaseListDB.COLUMN_DATABASE_NAME;
Cursor results = db.rawQuery("SELECT ? as _id FROM DatabaseList", 
    new String[] {sel});

私のSqlLiteHelperClassで

public static final String COLUMN_DATABASE_NAME = "databaseName";

必要な列名と主キーです。問題は、このクエリを実行すると、結果が実際の値ではなくテーブルの値として「databaseName」になることです。次のようにクエリを実行できます

Cursor results = db.rawQuery("SELECT databaseName as _id FROM DatabaseList", 
    null);

それは正常に動作し、selectionargs を適切に使用できない理由がわかりません。誰でもこれを修正するのを手伝ってもらえますか?

4

2 に答える 2

2

?WHERE引数に使用することになっています。あなたの場合、クエリを次のように変更するだけです。

Cursor results = db.rawQuery(String.format("SELECT %s as _id FROM DatabaseList", sel));
于 2013-01-07T08:20:56.327 に答える
1

からdeveloper.android.comは「?」しか入れられません。クエリを実行する列ではなく、WHERE 句について:

  • selectionArgs: クエリの where 句に ?s を含めることができます。これは、selectionArgs の値に置き換えられます。値は文字列としてバインドされます。
于 2013-01-07T08:18:39.033 に答える