0

ここのコードに基づいて、SQLite rawQuery メソッドを使用しようとしています:

データベースに Android レコードが存在しますか?

...しかし、次のコードで「The method rawQuery(String, String[]) is undefined for the type OdaaDBOpenHelper Authorize_Activity_DynamicControls.java」を取得します。

    OdaaDBOH = new OdaaDBOpenHelper(this);
. . .
    private boolean RecordExists(String _id) {
        // This:
        Cursor cursor = OdaaDBOH.rawQuery("select 1 from NAPOLEON_DYNAMITE_TABLE where _id=%s",  
        // or this:
        //Cursor cursor = OdaaDOdaaDBOpenHelperBOH.rawQuery("select 1 from     
NAPOLEON_DYNAMITE_TABLE where _id=%s",  
                new String[] { _id });
        boolean exists = (cursor.getCount() > 0); 
        cursor.close(); 
        return exists; 
    }

. . .
// from referenced unit:

public class OdaaDBOpenHelper extends SQLiteOpenHelper {

SQLiteOpenHelper から派生したクラスのインスタンス名と、クラス名自体 (上記のコードでコメントアウトされています) の両方を使用して試してみました。

rawQuery() を実装する、またはそれを認識/承認させるにはどうすればよいですか?

4

2 に答える 2

3

rawQuery()SQLiteDatabaseではなくのメソッドSQLiteOpenHelperです。getReadableDatabase()またはgetWritableDatabase()に電話して、SQLiteOpenHelperを取得しますSQLiteDatabase

于 2012-03-27T14:42:59.820 に答える
1

その質問の正解から:

mDb が SqlLiteDatabase クラスであると考えてください...

OdaaDBOHSQLiteDatabaseを使用する場合は、 a のインスタンスである必要がありますrawQuery。ほとんどの場合、そこに a の実装を提供していますがSQLiteOpenHelper、もちろんメソッドはありませんrawQuery

于 2012-03-27T14:45:13.987 に答える