Как передать целочисленную переменную в запрос sqlite, который я получаю из первого Activity? - PullRequest
0 голосов
/ 05 мая 2019

Я новичок в программировании для устройств Android. У меня есть два действия, в первом действии я отправляю целочисленное значение из первого действия во второе действие.

Как я могу добавить эту переменную в запрос sqlite, который я получаю из моего первого действия?

Я хочу добавить номер книги, где в запросе написано b = 1, я хочу заменить 1 на номер книги

private void setData() {

    Intent mIntent = getIntent();
    int booknumber= mIntent.getIntExtra("booknumber", 0);

    stringArrayList = new ArrayList<>();

    mDBHelper = new DatabaseHelper(this);
    mDb = mDBHelper.getReadableDatabase();

    Cursor cursor = mDb.rawQuery("select DISTINCT c from t_asv where b=1", new String[]{});

    if(cursor!=null && cursor.getCount() > 0)
    {
        if (cursor.moveToFirst())
        {
            do {
                stringArrayList.add(cursor.getString(0));
            } while (cursor.moveToNext());
        }
    }

1 Ответ

1 голос
/ 05 мая 2019

Просто объедините int booknumber к вашему запросу, как показано ниже:

int booknumber= mIntent.getIntExtra("booknumber", 0);
...
Cursor cursor = mDb.rawQuery("select DISTINCT c from t_asv where b=" + booknumber, new String[]{});

Обновление: Лучше использовать PreparedStatement / , как использовать , как упомянуто @ patrick-hollweck

Написание такого кода оставляет ваше приложение широко открытым для уязвимости SQL-инъекций и обычно считается очень плохой практикой

...