0


ID を使用してデータベースからランダムな行を要求するクエリを作成しました。しかし、私には少し問題があります。メッセージが存在する場合と存在しない場合にメッセージを表示したい。たとえば、私のデータベースは次のようになります。

ID - ingilizce - turkce
1 - hello - merhaba
4 - hi - selam ご覧

のとおり、2 番目と 3 番目のレコードは存在しません。1 から 4 までの乱数を生成し、ID に属する行を取得します。したがって、2 や 3 のような数値を生成すると、新しい乱数が生成されます。
私のコードはここにあります:

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 kayit3 = db.rawQuery("SELECT * FROM kelimeler WHERE id=" + rastgeleKayit, null);
kayit3.moveToFirst();
int kayitSayisi = kayit3.getCount();

if (kayitSayisi<1) {

    //Toast.makeText(getApplicationContext(), "bu kayıt yok", Toast.LENGTH_SHORT).show();
    //kelimeUret();

    // I COULDN'T DO HERE !

} else {

    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);

}

ご回答ありがとうございます...

4

1 に答える 1

0
Cursor kayit3 = db.rawQuery("SELECT * FROM kelimeler WHERE id=" + rastgeleKayit, null);
kayit3.moveToFirst();

kayit3.getCount(); クエリによって返されたレコードの数を返します。レコードがない場合は、存在しません。複数のレコードが返された場合、そのレコードは存在します。

お役に立てれば

于 2013-01-11T16:35:25.587 に答える