从数据库中的两列获取数据并添加到ArrayList

时间:2013-09-09 00:52:44

标签: java android sql sqlite arraylist

我不知道如何获取两列数据。我只知道在处理一列时如何做到这一点。

以下是问题所在的代码:

public ArrayList<String> getData() {

        ArrayList<String> List = new ArrayList<String>();

Cursor c = db.rawQuery("SELECT Column1, Column2 FROM Table where id = 1", null);

try {
    if (c != null) {
        if (c.moveToFirst()) {

            do {
                      String levelData = c.getString(c.getColumnIndex("Column1"));

                List.add("" + levelData);

                    }
                      while (c.moveToNext());
                }
            }
        } catch (SQLiteException e) {

                Log.e("Retrieve Data", "Unable to get Data " + e);
        }

        return List;
    }

我知道问题出在c.getColumnIndex("Column1"));,因为这将是您要从中获取数据的表的列的位置。但是,如果我尝试使用两列,我该怎么办?

2 个答案:

答案 0 :(得分:0)

答案很简单。这是我第一次尝试这个,我没想到它会这样 这就是我所做的:

try {
if (c != null) {
    if (c.moveToFirst()) {

        do {
                  String levelData = c.getString(c.getColumnIndex("Column1"));

            List.add("" + levelData);

                }
                  while (c.moveToNext());
            }
        }

    if (c != null) {
       if (c.moveToFirst()) {

        do {
                  String levelData = c.getString(c.getColumnIndex("Column2"));

            List.add("" + levelData);

                }
                  while (c.moveToNext());
            }
        }
    } catch (SQLiteException e) {

            Log.e("Retrieve Data", "Unable to get Data " + e);
    }

我只是添加了另一个确切的代码,但这一次,它读取了Column2并按预期工作。 :d

答案 1 :(得分:0)

创建一个带有2个变量的java bean类及其getter&amp;像

这样的二传手

公共类数据{

String coloumn1;
String coloumn2;

public String getColoumn1() {

    return coloumn1;

}
public void setColoumn1(String coloumn1) {

    this.coloumn1 = coloumn1;

}

public String getColoumn2() {

    return coloumn2;

}
public void setColoumn2(String coloumn2) {
    this.coloumn2 = coloumn2;
}

}

使用

ArrayList dataList = new ArrayList();

dataList.setsetColoumn1(您的数据);

对于coloumn2和吸气剂也是如此。