我做了一個查詢,它使用ID從數據庫請求一個隨機行。但我有一個小問題。我希望它顯示一條消息,如果它存在或它不存在。例如我的數據庫這樣的:
ID - ingilizce - turkce
1 - 你好 - merhaba
4 - 喜 - 塞拉姆
正如你看到的,第二個和第三個記錄不存在。我生成一個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的結果。真正意味着有一排,假意味着沒有。 – njzk2
但我建議使用'select * from kelimeler order by random()limit 1' – njzk2