構築した DB でクエリを実行しようとしていますが、(名前で) クエリを実行して結果を抽出すると奇妙な問題が発生します。db の最初の行を抽出すると、他のパラメーターを使用して別のクエリを実行できます。最初の行以外の行を抽出すると、データベースの最初の行にアクセスできなくなります
Cursor cur =datasource.query( 2,new String[] {"_id","Player","Num_of_wrong_ans","Num_of_drunkness_checks"} , PlayerDatabaseHelper.PLAYER + " =? " ,new String[] {array[1]} , null );
if(cur.moveToFirst())
{
id = cur.getString(cur.getColumnIndex(PlayerDatabaseHelper.ID));
}
cur.close();
クエリメソッドは次のとおりです。
public Cursor query( int indicator,String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String a;
switch (indicator)
{
case 1:
qb.setTables(PlayerDatabaseHelper.PLAYER_TABLE_NAME);
qb.setProjectionMap(projectionMap);
break;
case 2:
qb.setTables(PlayerDatabaseHelper.PLAYER_TABLE_NAME);
qb.setProjectionMap(projectionMap);
qb.appendWhere(PlayerDatabaseHelper.PLAYER);
break;
default:
throw new IllegalArgumentException("Unknown ");
}
// Get the database and run the query
SQLiteDatabase db = mHelper.getReadableDatabase();
Cursor c = qb.query(db, projection, selection, selectionArgs, null, null, null);
return c;
}
私は何を間違っていますか???