Android sqlite how to check if a record exists

android, sqlite

Solution

public static boolean CheckIsDataAlreadyInDBorNot(String TableName,
        String dbfield, String fieldValue) {
    SQLiteDatabase sqldb = EGLifeStyleApplication.sqLiteDatabase;
    String Query = "Select * from " + TableName + " where " + dbfield + " = " + fieldValue;
    Cursor cursor = sqldb.rawQuery(Query, null);
        if(cursor.getCount() <= 0){
            cursor.close();
            return false;
        }
    cursor.close();
    return true;
}

I hope this is useful to you... This function returns true if record already exists in db. Otherwise returns false.

Problem

I would like to check whether a record exists or not. Here is what I've tried: MainActivity.class ``` public void onTextChanged(CharSequence s, int start, int before, int count) { System.out.println("Ontext changed " + new String(s.toString())); strDocumentFrom = s.toString(); if(s.toString().isEmpty()){ } else { try{ strTransactionDate = dbHelper.getTransactionDateByDocumentNumber(strDocumentFrom); //strTotalAmount = dbHelper.getTotalAmountByDocumentNumber(strDocumentFrom); //strVan = dbHelper.getVanByDocumentNumber(strDocumentFrom); //etTransactionDate.setText(strTransactionDate); //etTotalAmount.setText(strTotalAmount); //Log.d("Van", "" + strVan); //etVan.setText(strVan); } catch (SQLiteException e) { e.printStackTrace(); Toast.makeText(ReceivingStocksHeader.this, "Document number does not exist.", Toast.LENGTH_SHORT).show(); } } ``` DBHelper.class ``` // TODO DISPLAYING RECORDS TO TRANSRCVHEADER public String getTransactionDateByDocumentNumber(String strDocumentNumber){ String[] columns = new String[]{KEY_TRANSACTIONDATE}; Cursor c = myDataBase.query(TBL_INTRANS, columns, null, null, null, null, null, null); if(c != null){ c.moveToFirst(); String date = c.getString(0); return date; } else { Log.d("Error", "No record exists"); } return null; } ``` But it doesn't get it to the catch block to display the toast. What am I doing wrong in here?

Original source

Related problems