0


データベースからランダムな単語を生成するアプリケーションを作成しました。しかし、そのような問題があり
ます。データベースにいくつかの行を挿入しましたが、ID フィールドは AUTOINCREMENT です。データベースからランダムな単語を取得します。しかし、レコードを削除して新しいレコードを挿入すると、ご存じのとおり、ID は古いレコードをスキップします。
そのため、ランダムな単語を取得しようとすると、エラーが発生する場合があります。どうすればこの問題を解決できますか?
ご回答ありがとうございます...

public void kelimeUret() {

    SQLiteDatabase db = kelimeler.getReadableDatabase();

    rastgele = new Random();

    Cursor kayit = db.rawQuery("SELECT count(*) FROM kelimeler", null);

    kayit.moveToFirst();

    int max = Integer.parseInt(kayit.getString(0));
    int min = 1;

    int rastgeleKayit = rastgele.nextInt(max - min + 1) + min;

    Cursor kayit2 = db.rawQuery("SELECT ingilizce FROM kelimeler WHERE id=" + rastgeleKayit, null);

    kayit2.moveToFirst();
    String sonuc = kayit2.getString(0);

    olusturulanKelime = sonuc;

    kelime = (TextView) findViewById(R.id.kelime);
    kelime.setText(sonuc);

}

私のコードはここにあります。実際問題ありません。できます。しかし、random が以前にデータベースから削除された ID を生成すると、エラーが発生します。レコードの順序番号を生成する必要があると考えましたが、それを行う方法が見つかりませんでした。別の方法でやりたいです。(身分証明書にはありません)

4

1 に答える 1

0

最も簡単な方法は、可能であれば AUTOINCREMENT を削除し、代わりに自分で ID の付与を処理することです。現在の最大 ID を照会して、自分でインクリメントするだけです。

于 2013-01-10T14:30:31.040 に答える