从sqlite数据库获取数据

时间:2012-08-14 11:06:16

标签: android sqlite

我有一个活动,想从我的sqlite数据库中获取数据。它有效,但我的活动只检索最后一行而不是整列。我该怎么做才能获得整个专栏?

这是我数据库中的代码:

public String getName() {
String[] columns = new String[]{ KEY_ROWID, KEY_NAME };
Cursor c = db.query(NAME_TABLE, columns, null, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()) {
String name = c.getString(c.getColumnIndex(KEY_NAME));
c.moveToNext();
}
c.close();
return name;
}

这是我的活动中与数据库联系的代码:

Database getdata = new Database(this);
getdata.open();
String data = getdata.getName();
getdata.close();

3 个答案:

答案 0 :(得分:2)

使用下面给出的cursor.moveToFirst()方法示例

if (cursor.moveToFirst()) {
             do {
                 list.add(cursor.getString(0));
                 list.add(cursor.getString(1));
                 list.add(cursor.getString(2));
                 list.add(cursor.getString(3));
                 list.add(cursor.getString(4));
                 list.add(cursor.getString(5));
                 list.add(cursor.getString(6));
               } while (cursor.moveToNext());
          }

答案 1 :(得分:1)

更新您的代码......

public String[] getName() {
    String[] columns = new String[]{ KEY_ROWID, KEY_NAME };
    int i=0;
    Cursor c = db.query(NAME_TABLE, columns, null, null, null, null, null);
    c.moveToFirst();
    String[] names = new String[c.getCount()];
    while(!c.isAfterLast()) {
        String name = c.getString(c.getColumnIndex(KEY_NAME));
        names[i]=name;
        c.moveToNext();
        i++;
    }
    c.close();
    return names;
}

Database getdata = new Database(this);
getdata.open();
String[] data = getdata.getName();
getdata.close();

答案 2 :(得分:1)

请参阅,正如我所说,没有看到代码我无能为力......看到你的代码后......

您只从该函数String返回单个getName(),而是返回String[]

注意:这只是伪代码..实际可能不同..

public String[] getName() {

        int i=0;
        String[] columns = new String[]{ KEY_ROWID, KEY_NAME };
        Cursor c = db.query(NAME_TABLE, columns, null, null, null, null, null);
        String name[] = new String[c.getCount()];
        c.moveToFirst();
          while(!c.isAfterLast()) {
               name[i] = c.getString(c.getColumnIndex(KEY_NAME));
               c.moveToNext();
               i++;
          }
        c.close();
        return name;
}

这一个,

Database getdata = new Database(this);
getdata.open();
String data[] = getdata.getName();
getdata.close();