gpt4 book ai didi

android检查表是否为空

转载 作者:太空狗 更新时间:2023-10-29 16:37:32 24 4
gpt4 key购买 nike

我使用 sqllite.i 成功创建了数据库,我可以在我的数据库中添加/删除/更新现在我想编写函数来检查表是否为空。如果表为空,则显示 Empty toast 消息,否则显示另一个 toast 消息我写了一些代码,但 awlays Toast 消息是空的这是我的代码

public boolean checkForTables(){
boolean hasTables = false;
db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " +TABLE_CONTACTS, null);

if(cursor.getCount() == 0){
hasTables=false;
if(cursor.getCount() > 0){
hasTables=true;
}

cursor.close();
}
return hasTables;


}

我在另一个 Activity 中检查了这个函数,但正如我所说的,toas 消息总是空的

if(helper.checkForTables())
Toast.makeText(getActivity(), "not empty", Toast.LENGTH_SHORT).show();

else
Toast.makeText(getActivity(), "empty", Toast.LENGTH_SHORT).show();

我做错了什么如果有人知道解决方案请帮助我

最佳答案

您以错误的方式嵌套了 if 语句。这样,假设其余部分正确,应该可以工作:

public boolean checkForTables(){
boolean hasTables = false;
db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT * FROM " +TABLE_CONTACTS, null);

if(cursor != null && cursor.getCount() > 0){
hasTables=true;
cursor.close();
}

return hasTables;
}

顺便说一句,执行 SELECT COUNT(*) 应该更有效:

public boolean checkForTables(){

db = this.getWritableDatabase();
Cursor cursor = db.rawQuery("SELECT COUNT(*) FROM " +TABLE_CONTACTS, null);

if(cursor != null){

cursor.moveToFirst();

int count = cursor.getInt(0);

if(count > 0){
return true;
}

cursor.close();
}

return false;
}

关于android检查表是否为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24995229/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com