SQLite: Impossible de lier l'argument à l'index 1 car l'index est hors de portée. La déclaration a 0 paramètres

Je reçois l'erreur suivante, et je ne sais pas pourquoi elle se produit. Je me demandais si quelqu'un d'autre pourrait éclairer la question.

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) 

Le code est ici:

  • Des requêtes avec des instructions préparées dans Android?
  • Que dois-je faire pour lancer la boîte de dialogue des paramètres Internet du téléphone?
  • Envoi de message via WhatsApp par intention
  • Comment utiliser la requête Firebase equalTo (valeur, clé)?
  • Android Studio (2.2.0 et 2.2.1) envoie un mauvais ABI divisé en périphérique
  • Comment utiliser la fonction bulkInsert () dans Android?
  •  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(); 

  • Ouverture de pièces jointes dans Android
  • Bouton de commutation - désactiver la fonction de glissement
  • Emulator: la fenêtre de l'émulateur était hors de vue et a été recentrée
  • Texte: utiliser le style de titre de la boîte de dialogue: @android: style / TextAppearance.DialogWindowTitle
  • Liste des endroits proches sans utiliser un objet cartographique sur Android
  • Erreur d'apk signée
  • One Solution collect form web for “SQLite: Impossible de lier l'argument à l'index 1 car l'index est hors de portée. La déclaration a 0 paramètres”

    La selection doit être une expression et une selectionArgs devrait-il avoir autant d'éléments qu'il y a ? Placeholder placeholder dans la selection .

    Votre selection n'est pas une expression et n'en a pas ? Mais vous avez un élément dans selectionArgs .

    Vous voulez probablement quelque chose comme:

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

    Pour en faire une expression qui correspond à la colonne du nom du joueur, c'est le littéral que vous liez dans selectionArgs[0] .

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.