SQLite: Cannot bind argument at index 1 because the index is out of range. The statement has 0 param

sqlite: Cannot bind argument at index 1 because the index is out of range. The statement has 0 parameters

sqlite出现了这样的错误

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,// The table to query
            projection,// The columns to return
            selection,// The columns for the WHERE clause
            selectionArgs,// The values for the WHERE clause
            null,// don't group the rows
            null,// don't filter by row groups
            null                                 // The sort order
            );

    if (cursor != null)
        cursor.movetoFirst();

解决方法如下

String selection =  PlayerEntry.COLUMN_NAME_PLAYER_NAME + "=?";

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能