我想检查表是否有行,如果包含行,那么我想删除它。下面是我的代码,用于检查表中是否有行。
boolean empty = true;
Cursor cursor = db.rawQuery("SELECT count(*) FROM TABLE_NAME",null);
cursor.moveToFirst();
if (cursor.getInt(0) > 0)
{
empty = false;
}
else
{
empty= true;
}
return empty;
我甚至尝试使用以下代码进行检查,
boolean empty = true;
Cursor cur = db.rawQuery("SELECT COUNT(*) FROM TABLE_NAME", null);
if (cur != null && cur.moveToFirst()) {
empty = (cur.getInt (0) == 0);
}
cur.close();
return empty;
以上两个代码都在行
中抛出NullPointerException(“SELECT COUNT(*)FROM TABLE_NAME”,null);
任何帮助都会很棒!!谢谢
答案 0 :(得分:1)
Android附带了一个名为DatabaseUtils的实用程序类,它有一个方法queryNumEntries,它可以将您的数据库对象和表名作为参数,并返回该数据库上的记录总数。相当干净的方式。你不需要写'从mytable'那里选择Count(*)。
public long count() {
return DatabaseUtils.queryNumEntries(db,'myTablename');
}
如果您的数据库不为空,请在旁边删除行 deleteAll以dB为单位删除所有行,或者通过将ID作为参数传递给要删除的行来使用delete_byID()。
public int deleteAll(){
return sqLiteDatabase.delete(MYDATABASE_TABLE, null, null);
}
public void delete_byID(int id){
sqLiteDatabase.delete(MYDATABASE_TABLE, KEY_ID+"="+id, null);
}