Vitor
Vitor

Reputation: 51

How use query() with WHERE clause?

I need to get the question, where the column : activity, lesson and screen are equal to eg: " 1", " 2" , "3". Note: question is a column too.

My code should return a string = "4" but are returning:

android.database.sqlite.SQLiteCursor@547e1a74

Code:

databaseHelper = Database.getInstance(getApplicationContext());

long id4 = databaseHelper4.insertData("1", "2", "3","4", "5", "6", "7", "8");
String question = databaseHelper4.getQuestion("1", "2", "2");
Message.message(IntroActivity.this, question);

Database:

public String getQuestion(String activity, String lesson, String screen){

    SQLiteDatabase db = helper.getWritableDatabase();
    String[] columns = {DatabaseHelper.QUESTION};
    Cursor cursor = db.query(DatabaseHelper.TABLE_NAME, columns, DatabaseHelper.ACTIVITY +
    "=?" + " AND " + DatabaseHelper.LESSON + "=?" + " AND " + DatabaseHelper.SCREEN +
    "=?", new String[]{activity, lesson, screen}, null, null, null, null);

    return cursor.toString();

}

Upvotes: 1

Views: 67

Answers (2)

Blackbelt
Blackbelt

Reputation: 157457

instead of returning cursor.toString(), you should return

cursor.getString(cursor.getColumnIndex(DatabaseHelper.QUESTION));

after you call cursor.moveToFirst();

public String getQuestion(String activity, String lesson, String screen){

   SQLiteDatabase db = helper.getWritableDatabase();
   String[] columns = {DatabaseHelper.QUESTION};
   Cursor cursor = db.query(DatabaseHelper.TABLE_NAME, columns, DatabaseHelper.ACTIVITY +
   "=?" + " AND " + DatabaseHelper.LESSON + "=?" + " AND " + DatabaseHelper.SCREEN +
   "=?", new String[]{activity, lesson, screen}, null, null, null, null);

     cursor.moveToFirst()
     return cursor.getString(cursor.getColumnIndex(DatabaseHelper.QUESTION));;

}

Upvotes: 1

ρяσѕρєя K
ρяσѕρєя K

Reputation: 132982

Here:

return cursor.toString();

Cursor.toString() method return String representation of Cursor instead of values which is contained by Cursor.

Get QUESTION Column value from cursor as:

cursor.moveToFirst();
String question = cursor.getString(cursor.getColumnIndex(
                                               DatabaseHelper.QUESTION));

Upvotes: 1

Related Questions