从SQLite DB中获取单行并将值保存到单个变量中并将它们显示到不同的文本视图中

时间:2012-10-09 08:58:27

标签: android android-sqlite

我在我的数据库适配器类中运行一个类似这样的查询,我提供了一个ID并想要获取与该ID相关联的行:

    public Cursor fetchRow(String a) {
    String Key = a; 

    return mDb.query(DATABASE_TABLE0, new String[] {IDno1, GIDno1,Name1,Owner1,Breed1,Gender1}, "IDno=?",new String[]{Key}, null, null, null, null);
}

现在在我的类中我想将从这个Query返回的各个元素绑定到不同的变量,但我很困惑如何实现它。我正在做类似的事情:

    private void fillData() {
    Cursor c = DBHelper.fetchRow();

   // List<String> idList = new ArrayList<String>();
    if (c.moveToFirst()) {


             }
}

3 个答案:

答案 0 :(得分:2)

try {
            c = null;
            String select = "Select * FROM tbl";
            c = db.rawQuery(select, null);
            if (null!=c) {
                while (c.moveToNext()) {
                    //Here you can directly set the value in textview
                    txtview.setText(c.getString(c.getColumnIndex("column_name")));
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            c.close();
        }

这样您就可以获取您的值并直接将其设置为textview。如果您确定只有一行而不是使用while语句。

if (null!=c) {
    c.moveToNext();
    txtview.setText(c.getString(c.getColumnIndex("column_name")));
}

希望这会有所帮助。

答案 1 :(得分:0)

做这样的事情 创建一个声明setter和getter的类

 private void fillData() {
    Cursor c = DBHelper.fetchRow();

    List<String> idList = new ArrayList<String>();
    if (c.moveToFirst()) {
        do {
            IdList q = new IdList ();
            q.setid0(c.getString(0));
            q.setid1(c.getString(1));
            q.setid2(c.getString(2));
            q.setid3(c.getString(3));
            q.setid4(c.getString(4));
                idList .add(q);
            }
        } while (c.moveToNext());


    }
}

并从类中获取值并设置为textview

答案 2 :(得分:0)

您需要以下内容:

variable1 = c.getDouble(c.getColumnIndex("Column1"));
variable2 = c.getString(c.getColumnIndex("Column2"));