ID를 사용하여 데이터베이스에서 임의의 행을 요청하는 쿼리를 만들었습니다. 그러나 나는 약간의 문제가있다. 메시지가 존재하거나 존재하지 않으면 메시지를 표시하고 싶습니다. 예를 들어 같은 내 데이터베이스 :
ID - ingilizce - 터키어
1 - 안녕하세요 - merhaba
4 - 하이 - selam
보시다시피, 두 번째와 세 번째 기록은 존재하지 않습니다. 1과 4 사이의 난수를 생성하고 ID에 속하는 행을 얻습니다. 따라서 2 또는 3과 같은 숫자를 생성하면 새로운 난수가 생성됩니다.
내 코드는 여기에 있습니다 :
선택한 행이 없으면 Android 데이터베이스에서 아무 작업도 수행하지 않음
공공 무효 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);
}
감사합니다 ...
moveToFirst의 결과를 테스트해야합니다. true는 행이 있음을 의미하고 false는 행이 없음을 의미합니다. – njzk2
하지만,'select * from kelimeler order random() limit 1 '을 사용하는 것이 좋습니다. – njzk2