Android 从游标获取表信息(存在/不存在)
在我的活动中,我需要检查我使用的表是否存在Android 从游标获取表信息(存在/不存在),android,Android,在我的活动中,我需要检查我使用的表是否存在 Cursor cursor = marksdb.rawQuery("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='"+classt+"'", null); if(cursor.getCount()==1){ // get values from cursor here callclasstb(); } els
Cursor cursor = marksdb.rawQuery("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='"+classt+"'", null);
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;否则为0
为此,我需要在光标中检查im使用的值
Cursor cursor = marksdb.rawQuery("SELECT count(*) FROM sqlite_master WHERE type='table' AND name='"+classt+"'", null);
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();
如果{…}使其执行cursor,则未执行我需要写入的条件。在您的情况下,getCount()
将始终返回1(结果集中的“行数”)。您需要找出通过光标返回的内容
Cursor cursor = marksdb.rawQuery(...);
cursor.moveToFirst(); // first "row"
int nTableExists = cursor.getInt(0);
cursor.close();
if (nTableExists) { // != 0
...do something...
}
您是否从shell运行查询并验证其正确性?