当前位置: 首页 > 知识库问答 >
问题:

将SQLite查询结果存储在String数组中

沈思博
2023-03-14

如何将查询结果保存在字符串数组中
查询很简单,只有一列,即:

SELECT NAME FROM MYTABLE

我想要的是将id存储在String数组中,这样我就可以将它们显示为列表视图中的可点击项。

共有3个答案

乌翔
2023-03-14

在SQLiteOpenHelper类中创建以下方法

public List<String> getAllNames() {
    List<String> retData = new ArrayList<String>();
    String selectQuery = "SELECT NAME FROM MYTABLE";
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);
    if (cursor.moveToFirst()) {
        do {
            retData.add(cursor.getString(0));
        } while (cursor.moveToNext());
    }
    return retData;
}

然后将返回的列表分配给适配器

通煜祺
2023-03-14

假设您已经对一个SQLiteDatabase对象执行了查询,并收到了一个游标作为返回,您可以迭代游标并将每行的值保存到一个字符串[]数组,如下所示:

String[] names;
if (cursor.moveToFirst()) {
    names = new String[cursor.getCount()];
    int colIndex = cursor.getColumnIndex("NAME");
    do {
        names[cursor.getPosition()] = cursor.getString(colIndex);
    } while (cursor.moveToNext());
}

请记住,如果没有返回任何行,name将为null,因此请确保进行空检查。

伏子辰
2023-03-14

试试这个

String selectQuery = "SELECT  * FROM table";
        try {
            Cursor cursor = db.rawQuery(selectQuery, null);
            ArrayList<String> ids = new ArrayList<>();
            // looping through all rows and adding to list
            if (cursor.moveToFirst()) {
                do {
                    String id = cursor.getString(cursor.getColumnIndex(KEY_ID));
                    ids.add(id);
                } while (cursor.moveToNext());
            }
            cursor.close();
        } catch (Exception e) {
            e.printStackTrace();

        }
 类似资料:
  • 问题内容: 大家好,我想将我的数组转换成其他数组类型,请帮助我。我正在用这个 和输出是 但是我想要这种格式的输出 那我应该用什么函数来获得这种格式的数组 问题答案: 更新17年2月 现在已经是2017年了,建议您在mysql_ *上使用PDO。安全得多,并且可以本地返回(如`TrexXx的答案所示)。

  • 问题内容: 我知道这应该是简单的,我可能正直盯着问题,但我再次陷入困境,需要代码专家的帮助。 我试图从jdbc的一列中取出一行,并将它们放入数组中。 我这样做如下: creatConnection是已经定义的方法,可以执行其明显的工作。我在创建另一个结果集的同时创建了我的结果集,我将该列的字符串存储到一个数组中。然后打印出来以备不时之需。还要确保它在那里。 问题在于其将整个列存储到contactL

  • 问题内容: 这是我在phpi中使用mysqli面向对象样式的简单查询: 这很好。我获得了从select语句检索的名称列表。 现在,在一段时间内,我想将该变量用作另一个查询的参数,但是mysqli不允许这样做,因为我必须关闭第一个查询,然后调用第二个查询。 因此,我认为我必须存储第一个查询的结果,然后遍历结果以调用新查询。 我尝试了以下方法: 但这是行不通的。永远不会到达while内的代码。 注意

  • 问题内容: 当我使用变量执行此查询时,将显示此错误。 问题答案: 用括号括起来的选择。

  • 问题内容: 我正在尝试找到一种方法来缓存不会随频率变化的查询结果。例如,来自电子商务的产品类别(手机,电视等)。我正在考虑使用模板片段缓存,但是在这个片段中,我将遍历这些类别的列表。该列表在网站的任何部分都可用,因此在我的文件中。渲染模板时是否总是要发送类别列表?还是有更动态的方法来执行此操作,以使列表始终在模板中可用? 问题答案: 将缓存的查询弹出到Django的缓存中: 然后创建一个上下文处理