我试图从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开头。我已经多次检查过,我很确定。光标不应该返回空。
答案 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 ?";