sqlite: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters
12-25 22:52:50.252: E/AndroidRuntime(813): Caused by: java.lang.IllegalArgumentException: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters.
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteProgram.bind(sqliteProgram.java:212)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteProgram.bindString(sqliteProgram.java:166)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteProgram.bindAllArgsAsStrings(sqliteProgram.java:200)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteDirectCursorDriver.query(sqliteDirectCursorDriver.java:47)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteDatabase.rawQueryWithFactory(sqliteDatabase.java:1314)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteDatabase.queryWithFactory(sqliteDatabase.java:1161)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteDatabase.query(sqliteDatabase.java:1032)
12-25 22:52:50.252: E/AndroidRuntime(813): at android.database.sqlite.sqliteDatabase.query(sqliteDatabase.java:1200)
代码如下
public Player getPlayer(String name) {
sqliteDatabase db = this.getReadableDatabase();
String[] projection = {
PlayerEntry.COLUMN_NAME_PLAYER_NAME,PlayerEntry.COLUMN_NAME_PLAYED_GAMES,};
String selection = PlayerEntry.COLUMN_NAME_PLAYER_NAME ;
String[] selectionArgs = new String[1];
selectionArgs[0] = name;
Cursor cursor = db.query(
PlayerEntry.TABLE_NAME,@H_502_154@// The table to query
projection,@H_502_154@// The columns to return
selection,@H_502_154@// The columns for the WHERE clause
selectionArgs,@H_502_154@// The values for the WHERE clause
null,@H_502_154@// don't group the rows
null,@H_502_154@// don't filter by row groups
null @H_502_154@// The sort order
);
if (cursor != null)
cursor.moveToFirst();
解决方法如下
String selection = PlayerEntry.COLUMN_NAME_PLAYER_NAME + "=?";