我想检查数据库中是否存在一行sqlite表。如果存在行,我应该调用一个类,否则另一个类。要使用此功能我正在使用
public boolean Exists(int position) {
SQLiteDatabase db = (placeData).getReadableDatabase();
Cursor cursor = db.rawQuery("select * from pages where bbookid ='"+ position +"'", null);
boolean exists = (cursor.getColumnName(position)) != null;
Log.i("logs","fads");
if(exists=true)
{
getDataAndPopulate();
}
else
{
Log.i("qefw","cursors");
new LoadAllProducts().execute();
}
cursor.close();
return exists;
}
但是使用这段代码会重新插入行..有人建议我采用这种方法
答案 0 :(得分:2)
您的等式检查失败,因为此表达式正在评估true
:
if(exists=true)
如果您有一个等号,则表示分配。您要将true
分配给exists
,而不是将exists
与true
进行比较。分配的结果是exists
被分配的值(true
)。
尝试使用正确的相等运算符:
if (exists == true)
有关此问题的详细信息,请参阅this related post。
答案 1 :(得分:0)
这里的问题在于if(exists = true)。需要更改为if(exists == true)。 您还可以使用cursor.getCount()进行检查;它将返回游标中的行数