0

我想将特定列的值存储在数组中,因为我是新手,所以我不知道该怎么做。我从 sqlite 获取值作为

1
2
123
432
3
5

我想将这些值存储在字符串数组中。请告诉我,我没有通过谷歌搜索找到任何合适的例子..thanx 提前。

public void fun(String query){
    Cursor cursor = db.rawQuery(query, null);

    try{
        String[] arr = new String[cursor.getCount()];
        if(cursor != null){
            while(cursor.moveToNext()){
                for(int i = 0; i < cursor.getCount(); i++){
                    arr[i] = cursor.getString(0).trim();

                }
                cursor.moveToNext();
            }
            cursor.close();
        }

    }finally{
        cursor.close();
    }

}

这里查询是

SELECT <COLUMN_NAME> FROM <TABLE_NAME> WHERE <CONDITION>;

我认为我做错了,请纠正我的错误...

4

3 回答 3

2

我认为使用rawQuery是一个坏习惯,尽量避免这种情况(极端情况除外)

尝试以下方法来解决您的问题,希望对您有所帮助:

public ArrayList<String> getAllStringValues() {
    ArrayList<String> yourStringValues = new ArrayList<String>();
    Cursor result = db.query(true, YOUR_TABLE,
            new String[] { YOUR_COLUMN_NAME }, null, null, null, null,
            null, null);

    if (result.moveToFirst()) {
        do {
            yourStringValues.add(result.getString(result
                    .getColumnIndex(YOUR_COLUMN_NAME)));
        } while (result.moveToNext());
    } else {
        return null;
    }
    return yourStringValues;
}

在YourCustomDBManager类中使用此方法。考虑Android 开发者网站示例程序员指南的记事本示例以获得更好的概念。它将帮助您学习如何处理 SQLite。我也是 Android 新手,但我从记事本示例中学到了有关 SQLite 的一切。

于 2012-07-10T12:02:57.743 回答
1
Vector<String> vecInt = new Vector<String>; // you can use any datatype <int><float>

cursor.moveToFirst();
for(i=0;i<cursor.getCount();i++)
{
      vecInt.add(cursor.getString(COLUMN_NUM));// if you are using datatype other then string then need to convert here
}
于 2012-07-10T11:34:28.203 回答
1
int [] val = new int[cursor.getCount()]; // integer array
for(int i= 0; i<cursor.getCount(); i++)
     val[i] = cursor.getInt(cursor.getColumnIndex(COLUMN_NAME));
于 2012-07-10T11:36:08.270 回答