我必须做什么来实现SQLite的rawQuery()方法?



我正在尝试使用SQLite rawQuery方法,基于这里的代码:

数据库中是否存在Android记录()?

但是我得到"方法rawQuery(String,String[])对于类型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()或使其被识别/确认?

rawQuery()SQLiteDatabase上的一个方法,而不是SQLiteOpenHelper。呼叫SQLiteOpenHelper上的getReadableDatabase()getWritableDatabase()以获得SQLiteDatabase

根据这个问题的正确答案:

考虑mDb是您的SqlLiteDatabase类

OdaaDBOH应该是SQLiteDatabase的一个实例,如果您想在它上使用rawQuery,很可能您在那里提供了SQLiteOpenHelper的实现,当然它没有方法rawQuery

最新更新