0

此数据库方法仅返回数据库的 KEY_NAME 列中的字符串名称。另外两列是 KEY_ROWID 和 KEY_HITS。

让列像这样返回数组变量更好吗?

 String[] columns = new String[] { KEY_NAME };

因为只需要 KEY_NAME 列,或者总是将所有列都像这样放入更好;

 String[] columns = new String[] {KEY_ROWID, KEY_NAME, KEY_HITS };

下面显示的数据库方法的完整代码;

 public String getName(long l){
    String[] columns = new String[] {KEY_ROWID, KEY_NAME, KEY_HITS };
    Cursor c = ourDatabase.query(DATABASE_TABLE, columns, KEY_ROWID +"="+ l, null, null, null, null);
if(c!= null){
    c.moveToFirst();
    String name = c.getString(1);
    return name;
}
return null;
}

编辑;

经过一些测试,我发现如果我使用它,我只能返回单个列名“KEY_NAME”;

total = total + c.getInt(c.getColumnIndex(KEY_NAME)); // only need { KEY_NAME };

但是,当我使用以下代码使用数字来获取列位置“c.getInt(2)”时,除非我返回所有三个列名,否则它不起作用

total = total + c.getInt(2);   // requires {KEY_ROWID, KEY_NAME, KEY_HITS };
4

2 回答 2

1

为什么要获取不需要的数据。

如果您只想获取一列,请仅查询该列的数据库,并且只要它适合您就继续这样做。

于 2013-01-28T08:47:00.917 回答
0

出于性能原因,您应该尝试获取尽可能少的列。

但是,如果您使用的是 CursorAdapter,则需要id列。

于 2013-01-28T08:48:44.593 回答