从游标中检索一个字符串值

时间:2015-08-31 13:10:01

标签: android

我的android项目中有一个表有3列,我只想从表中的主要活动中的一列(字符串值)中获取特定值。 我使用此代码,但它返回整个列表,我只想要一个值取决于条件

public List getAlltableList(){

    List <AI_TABLE> tableArrayList = new ArrayList <AI_TABLE>();

    String selectQuery = "SELECT  * FROM " + AI_TABLE;

    Log.d (TAG, selectQuery);

    SQLiteDatabase db = this.getReadableDatabase();

    Cursor c = db.rawQuery (selectQuery, null);


    // looping through all rows and adding to list

if(!c.isAfterLast())

   c.moveToFirst();

    while (!c.isAfterLast()){

            AI_TABLE table = new AI_TABLE();

            table.ID = c.getInt(c.getColumnIndex(ID));

            table.Q = c.getString(c.getColumnIndex(Q));

            table.Q_ID = c.getString(c.getColumnIndex(Q_ID));

            table.A = c.getString(c.getColumnIndex(A));

            // adding to Students list

            tableArrayList.add(table);

        c.moveToNext();

        }

    return tableArrayList;
}

2 个答案:

答案 0 :(得分:1)

通过添加Where条件来更改字符串查询

String selectQuery = "SELECT some_column FROM " + AI_TABLE + " WHERE some_field = ?" ;

然后在查询数据库时添加一个选择参数

Cursor c = db.rawQuery (selectQuery, new String[] {"SOME_VALUE"} );

这只会将some_column返回到游标,其中some_field等于“SOME_VALUE”

答案 1 :(得分:0)

只需对查询进行投影,只需选择'SELECT column_name from' + AI_TABLE之类的列,然后从光标中获取索引为0的列