我尝试使用SQLite rawQuery方法,基于此处的代码:
Android record exists() in database?
...但我得到" 方法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()或使其被识别/确认?
答案 0 :(得分:3)
rawQuery()
是SQLiteDatabase
上的方法,而不是SQLiteOpenHelper
。致电getReadableDatabase()
上的getWritableDatabase()
或SQLiteOpenHelper
,获取SQLiteDatabase
。
答案 1 :(得分:1)
从这个问题正确回答:
考虑到mDb是您的SqlLiteDatabase类...
OdaaDBOH 应该是SQLiteDatabase
的实例,如果您想在其上使用rawQuery
,那么很可能您正在提供SQLiteOpenHelper
的实施,当然没有方法rawQuery
。