我想循环遍历sqlite数据库if if(johnny)是否存在于数据库中但是我的代码不能正常工作
if(!cursor.isAfterLast())
{
do
{
for(int i = 0; i<cursor.getCount(); i++)
{
if("johnny" == cursor.getString(1))
{
Toast.makeText(getApplicationContext(), "string found!!! =)", Toast.LENGTH_LONG).show();
}
}
}
while (cursor.moveToNext());
}
cursor.close();
}
答案 0 :(得分:5)
要进行比较,请使用.equals()
,即更改
if("johnny" == cursor.getString(1))
到
if("johnny".equals(cursor.getString(1)))
修改强>
你可以使用像这样的查询
Cursor objCursor = db.query("yourtableName",null, "columnName=?",
new String[] { "johnny" }, null, null, null, null);
if ((objCursor != null) && (objCursor.getCount() > 0)) {
Toast.makeText(getApplicationContext(), "string found!!! =)", Toast.LENGTH_LONG).show();
}
注意:将yourtableName
替换为您的表名,将columnName
替换为表的列名。
答案 1 :(得分:0)
你必须使用equal方法而不是==来匹配java中的字符串。或者您可以创建查询而不是在for循环中执行和获取和比较。喜欢从表名中选择*,其中名称类似