0

私の活動では、そのimを使用してテーブルが存在するかどうかを確認する必要があります

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

テーブルが存在する場合は1を取得します。それ以外の場合は、そのimを使用してカーソルの値を確認する必要があります。

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

しかし、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 に答える