如何使用for循环android搜索sqlite数据库记录

时间:2014-07-14 12:58:31

标签: android android-sqlite

我想循环遍历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();
}

2 个答案:

答案 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循环中执行和获取和比较。喜欢从表名中选择*,其中名称类似