0

このデータベース メソッドは、データベースの KEY_NAME 列から文字列名のみを返しています。他の 2 つの列は 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)」を取得すると、3 つの列名すべてを返さない限り機能しません。

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

2 に答える 2

1

必要のないデータを取得したいのはなぜですか。

1 つの列のみを取得する場合は、その列のみをデータベースにクエリし、それが機能する限りそれを続けます。

于 2013-01-28T08:47:00.917 に答える
0

パフォーマンス上の理由から、必要に応じてフェッチする列を減らすようにしてください。

ただし、CursorAdapter を使用している場合は、id列が必要です。

于 2013-01-28T08:48:44.593 に答える