从android(java)数组中的sqlite获取并存储列值

时间:2012-07-10 11:30:31

标签: android arrays sqlite fetch

我想在数组中存储特定列的值,因为我更新鲜,我不知道如何做到这一点。我从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>;

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

3 个答案:

答案 0 :(得分: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 类中使用此方法。考虑 NotePad Android开发者网站示例程序员的示例,以获得更好的概念。它将帮助您学习如何处理SQLite。我也是Android的新手,但我从 NotePad 示例中学到了关于SQLite的一切。

答案 1 :(得分: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
}

答案 2 :(得分: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));