Android Seleccionar fila por Id en Sqlite?

Quiero obtener una fila específica por id en android sqlite y han escrito el siguiente código, pero no devuelve ningún registro. He escrito un método getAllRecords() que devuelve todos los registros de la base de datos.

¿Puede alguien explicar el error que estoy haciendo?

 public Bank getBankById(int bankId) { Cursor cursor=null; Bank bnk = null; cursor = this.db.rawQuery("select * from " + BanksTable.NAME + " where " + BanksTable.COL_ID + "=" + bankId , null); if (cursor != null) { if (cursor.moveToFirst()) { int id = cursor.getInt(cursor.getColumnIndex(BanksTable.COL_ID)); String name = cursor.getString(cursor.getColumnIndex(BanksTable.COL_NAME)); String url = cursor.getString(cursor.getColumnIndex(BanksTable.COL_IMAGE_URL)); byte[] image = cursor.getBlob(cursor.getColumnIndex(BanksTable.COL_IMAGE)); bnk=new Bank(); bnk.setId(id); bnk.setImageURL(url); bnk.setName(name); bnk.setImageByteArray(image); } cursor.close(); } return bnk; } 

Terminé este problema cambiando el parametor al nombre. Es extraño, pero todavía no sé por qué no funcionaba.

I estaba recibiendo id de banco como 0,1,2,3,4 puede ser que no está permitido en sqlite o internamente efecto, pero aún no estoy seguro.

 cursor = this.db.rawQuery("select * from " + BanksTable.NAME + " where " + BanksTable.COL_NAME + "='" + bankName + "'" , null); 

Resuelvo este problema agregando propiedad de "autoincrement" a la identificación, al crear la tabla

 db.execSQL("CREATE TABLE IF NOT EXISTS " + BanksTable.NAME +" ( " +BanksTable.COL_ID + " integer PRIMARY KEY **autoincrement**, "+ BanksTable.COL_NAME + " varchar, " + BanksTable.COL_IMAGE_URL + " varchar," + BanksTable.COL_IMAGE + " blob);"); 
  • Cómo recuperar datos de la tabla secundaria con CursorLoader que carga datos de la tabla principal?
  • UnsatisfiedLinkError (Método nativo no encontrado)
  • Android Store un objeto parcelable en SQLite
  • ¿Por qué algunos métodos SQLite esperan argumentos como un objeto , mientras que otros necesitan una cadena ?
  • ORMLite Seleccionar campos distintos
  • SQLiteDiskIOException: error de E / S de disco (código 3850)
  • ¿Cómo puedo insertar una comilla doble (") en el campo Varchar de la base de datos SQLite?
  • Cómo probar proveedores de contenido en Android
  • Debería llamar a .close () en SQLiteDatabase y SQLiteOpenHelper
  • Android - BaseColumns y _id
  • Diferencias de SQLite entre Android 2.1 y 2.2
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.