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

來源:互聯網
上載者:User

標籤:statement   argument   index   sqlite   android   

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: Cannot bind argument at index 1 because the index is out of range. The statement has 0 param

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.