Trinity
Trinity

Reputation: 484

How to send parameter to where clause in a Sqlite query

I'm trying to get a single row from database.But it is not generated query. The questions marks still seems. What am i missing ?

 public static User getSingleUser(String email,String password)
    {
        User user = new User();

        SQLiteDatabase db = DatabaseManager.getInstance().openDatabase();

        String selectQuery = " SELECT * FROM " + User.TABLE + " WHERE "
                + User.KEY_EMAIL + "=?"+ " AND " + User.KEY_PASSWORD
                + "=?" ;

        Cursor cursor = db.rawQuery(selectQuery,new String[]{email,password},null);

        if (cursor.moveToFirst()) {
            do {

                user.setId(cursor.getInt(cursor.getColumnIndex("UserId")));
                user.setFirstname(cursor.getString(cursor.getColumnIndex("Firstname")));
                user.setLastname(cursor.getString(cursor.getColumnIndex("Lastname")));
                user.setEmail(cursor.getString(cursor.getColumnIndex("Email")));
                user.setPassword(cursor.getString(cursor.getColumnIndex("Password")));
                user.setIsActive(cursor.getInt(cursor.getColumnIndex("IsActive")));

            } while (cursor.moveToNext());
        }

        return user;
    }
}

Upvotes: 1

Views: 1976

Answers (2)

kevz
kevz

Reputation: 2737

try to use native android query as below -

Cursor cursor = db.query(User.TABLE, null, User.KEY_EMAIL + "=? and " + User.KEY_PASSWORD + "=?", new String[] {email, password}, null, null, null );

Upvotes: 0

Neerajlal K
Neerajlal K

Reputation: 6828

Try this,

    String selection = User.KEY_EMAIL + "=?"+ " AND " + User.KEY_PASSWORD + "=?";
    String[] selectionArgs = new String[]{ email, password };
    Cursor cursor = db.query(User.TABLE, null, selection, selectionArgs, null, null, null);

Upvotes: 2

Related Questions