游标总是返回空(虽然它不应该是#t; t)

时间:2014-08-26 00:10:30

标签: android sqlite android-sqlite android-cursor

我试图从SQLite数据库中读取并使用我正在使用的方法来获取Cursor总是返回一个空的Cursor。

这是方法:

public Cursor getUrls(int oddelki){
    String[] columns = new String[]{SQLiteHelper.RAZRED, SQLiteHelper.URNIK_URL};
    String selection = SQLiteHelper.RAZRED+"=?";
    String[] selectionArgs = new String[]{oddelki+"%"};
    open();
    return db.query(
            SQLiteHelper.IME_TABELE2,
            columns,
            selection,
            selectionArgs,
            null, null, null);
}

在“RAZRED”列中,数据以这种格式保存:1.A,1.B,1.C,2.A,2.B等,所以当我从数据库中读取数据时,我希望所有数据都是有“RAZRED”以1开头。这就是我使用%(oddelki +“%”)的原因。

以下是我如何使用该方法读取数据:

Cursor c = new DatabaseHandler(getApplicationContext()).getUrls(1);
    if (c.moveToFirst())
    {
        do {
            Log.i("TAG", c.getString(c.getColumnIndex(SQLiteHelper.RAZRED)));
        } while (c.moveToNext());
    }

但是游标永远不会移动到第一行。 IF条件总是失败。数据库中的数据以1开头。我已经多次检查过,我很确定。光标不应该返回空。

1 个答案:

答案 0 :(得分:2)

  

在“RAZRED”列中,数据以这种格式保存:1.A,1.B,1.C,2.A,2.B等,所以当我从数据库中读取数据时,我希望所有数据都是有“RAZRED”以1开头。这就是我使用%(oddelki +“%”)的原因。

然后使用LIKE运算符而不是=相等。变化

String selection = SQLiteHelper.RAZRED+"=?";

String selection = SQLiteHelper.RAZRED+" LIKE ?";