Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Select row by Id in Sqlite?

Tags:

android

sqlite

I want to get a specific row by id in android sqlite and have written the following code, but it does not return any records. I have written a getAllRecords() method which returns all records from database.

Can anyone explain mistake I am making?

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;

    }
like image 670
UMAR-MOBITSOLUTIONS Avatar asked Apr 28 '11 10:04

UMAR-MOBITSOLUTIONS


2 Answers

I ended up this problem by changing parameter to name. Its weird but I still don't know why it was not working.

I was getting bank id like 0,1,2,3,4 maybe it is not allowed in SQLite or internally affecting it but still I am not sure.

cursor =  this.db.rawQuery("select * from " + BanksTable.NAME + " where " + BanksTable.COL_NAME + "='" + bankName + "'" , null);
like image 58
UMAR-MOBITSOLUTIONS Avatar answered Oct 21 '22 21:10

UMAR-MOBITSOLUTIONS


Here is my approach to get custem object from sqlite db

    fun getTaskById(itemId: Int): ModelTask {
    val food= ModelTask()

    val database = readableDatabase
    val kolonlar = arrayOf(DBContract.TaskEntry.COLUMN_T_ID,
            DBContract.TaskEntry.COLUMN_T_TITLE,
            DBContract.TaskEntry.COLUMN_T_DESC,
            DBContract.TaskEntry.COLUMN_T_TIME,
            DBContract.TaskEntry.COLUMN_T_PRIORITY,
            DBContract.TaskEntry.COLUMN_T_DATE,
            DBContract.TaskEntry.COLUMN_T_DONE)
    val whereClause =  DBContract.TaskEntry.COLUMN_T_ID + " = ? "
    val whereArgs = arrayOf(itemId.toString())
    val cursor = database.query( DBContract.TaskEntry.TABLE_NAME_TASK, kolonlar, whereClause, whereArgs,
            null, null,  DBContract.TaskEntry.COLUMN_T_ID + " DESC")

    while (cursor.moveToNext()) {

        food.id = cursor.getInt(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_ID))
        food.title = cursor.getString(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_TITLE))
        food.description = cursor.getString(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_DESC))
        food.time = cursor.getString(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_TIME))
        food.priority = cursor.getString(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_PRIORITY))
        food.date = cursor.getString(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_DATE))
        food.done = cursor.getInt(cursor.getColumnIndex(DBContract.TaskEntry.COLUMN_T_DONE))
     }
    database.close()
    cursor.close()
    return foodList
}
like image 1
Samir Avatar answered Oct 21 '22 21:10

Samir