我想在数组中存储特定列的值,因为我更新鲜,我不知道如何做到这一点。我从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>;
我认为我做错了请纠正我的错误......
答案 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));