我知道很久以前就被问到并回答过,但我的代码仍然存在问题,而且我对Android开发人员来说还是新手。
我希望在继续进行任何处理之前检查表是否存在。
我找到了:https://stackoverflow.com/a/7863401/3669516
但我仍然收到错误:
E / SQLiteLog:(1)没有这样的表:challenge
W / Challenge_DBAdapter:没有这样的表:challenge(代码1):,编译时:SELECT COUNT(*)FROM challenge错误代码:1(SQLITE_ERROR)
引起:SQL(查询)错误或缺少数据库。 (没有这样的表:挑战(代码1):,编译时:SELECT COUNT(*)FROM challenge)
这是我的Try()Catch {}代码段
try{
Cursor cursor = db.rawQuery("SELECT COUNT(*) FROM challenge",null);
Log.w(TAG, "check cursor");
if(cursor != null)
if(cursor.getCount() < 1) {
if(setupDB())
db_is_set = true;
} else {
db_is_set = true;
}
} catch (Exception e){
Log.w(TAG, e.getMessage());
}
我的代码在点击Log for'check cursor'之前崩溃了。
我想要的结果是得到一个布尔(各种各样的),所以我可以继续处理。目前,我通过在catch块中调用所需的函数“setupDB()”来使代码工作,但我想知道为什么我的程序在遇到查询时进入if(cursor!= null)块时失败。