2

データベースに保存されているすべてのレコードを表示したい

c = db.DBhelper.getChamp1(c.getCount);
//startManagingCursor(c);
int j = 0;
stateNameArray = new String[c.getCount()];
c.moveToFirst();
while(!c.isAfterLast()) {
  stateNameArray[j] = c.getString(0);
  j++;
  Log.i("DEBUG_SQL","" + c.getString(0)+ " "+c.getString(j));
   c.moveToNext();
}
//String resultat = ;
Log.i("DEBUG_SQL","" + c.getColumnIndex("article"));

書き込み時にエラーが発生しますc.getCount。なぜですか? 1 や 2 や 3 のような数字を書くと、うまくいきます。

そして、私が書くなら

c = db.rawQuery("SELECT * FROM loan", null); 

エラーが出ますが、書くと

db.rawQuery("SELECT * FROM loan WHERE _id=1", null); 

それはうまくいきます。なんで?

4

2 に答える 2

0

getCount の問題に関する質問に答えるには、次の理由でエラーが発生します。

c = db.DBhelper.getChamp1(c.getCount);

カーソルを取得する前に、カーソルの数を取得しようとしています (そして、行方不明です())。

次のカーソルをプルする前にカウントするカーソルがあるため、これは機能します。

c = db.getSomeCursor;
c1 = db.DBhelper.getChamp1(c.getCount());

あなたが達成しようとしていることをお知らせください (あなたが投稿したコードからはわかりません)。

于 2012-05-13T14:17:04.720 に答える
0

少なくとも、このログ ステートメントには c.getString(j) が意味をなさないという問題があります。また、j が大きくなると、エラーが発生する可能性があります。

 Log.i("DEBUG_SQL","" + c.getString(0)+ " "+c.getString(j));

c.getString(j) ステートメントでどのデータにアクセスするつもりでしたか?

getCount エラーについて。以下のエラーはタイプミスだと思いました。しかし、これは getCount に関連するエラーが見つかった場所ですか?

c = db.DBhelper.getChamp1(c.getCount);

しかし、私は仮定すべきではありません-あなたは決して知りません. 読む必要があります(メソッド呼び出しに括弧を追加します)。

c = db.DBhelper.getChamp1(c.getCount());

そして@Barakが述べたように、この声明で何が起こっているのでしょうか?

于 2012-05-13T13:57:35.873 に答える