我正在尝试使用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
。