简体   繁体   English

如何在第一个Activity中收到的sqlite查询中传递整数变量?

[英]How do I pass integer variable in sqlite query which I receive from first Activity?

I am new to programming for Android devices. 我是Android设备编程的新手。 I have two activities, in the first activity I send an integer value from the first activity to the second activity. 我有两个活动,在第一个活动中,我将第一个活动的整数值发送到第二个活动。

How can I add this variable in sqlite query which I receive from my first activity? 如何在我从第一个活动收到的sqlite查询中添加此变量?

I want to add booknumber where in query written b=1 I want replace 1 with booknumber 我想添加booknumber在查询中写入b = 1我想用booknumber替换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());
        }
    }

Just Concatenate the int booknumber to your query like below: 只需将int booknumber连接到您的查询,如下所示:

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

Update: Its better to use the PreparedStatement / how to use as mentioned by @patrick-hollweck 更新:最好使用@ patrick-hollweck提到的PreparedStatement / 如何使用

Writing code like this leaves your app wide open to a sql injection vulnerability and is generally considered a very bad practice 编写这样的代码会使您的应用程序对sql注入漏洞敞开大门,通常被认为是一种非常糟糕的做法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM