0

在我的活动中需要检查我使用的表是否存在

 Cursor cursor = marksdb.rawQuery("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='"+classt+"'", null);

我得到 1 如果表存在 0 否则我需要检查光标中的值以供我使用

if(cursor.getCount()==1){
        // get values from cursor here
         callclasstb();
        }
     else{
         tv.setVisibility(View.VISIBLE);
        subjectet.setEnabled(false);
        markset.setEnabled(false);
        markssp.setEnabled(false);
     }

但在所有情况下,我都会得到值 1,因为 getcout() 返回值 1 r 0 并且

callclasstb();

没有执行我需要在 if{....} 中写入的条件以使其执行

4

1 回答 1

1

cursor.getCount()在您的情况下,将始终返回 1(结果集中的“行”数)。您需要弄清楚通过光标返回的内容。

     Cursor cursor = marksdb.rawQuery(...);
     cursor.moveToFirst(); // first "row"
     int nTableExists = cursor.getInt(0);
     cursor.close();

     if (nTableExists) { // != 0
        ...do something...
     }
于 2013-01-02T15:34:31.817 回答