Android SQLite检查表是否存在

时间:2016-08-03 01:58:32

标签: android sqlite

我知道很久以前就被问到并回答过,但我的代码仍然存在问题,而且我对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)块时失败。

0 个答案:

没有答案