如果所选行不存在,Android数据库不会执行任何操作

时间:2013-01-11 16:30:46

标签: android database select random


我做了一个查询,使用ID从数据库请求一个随机行。但我有一点问题。我希望它显示一条消息,如果它存在或不存在。例如我的数据库如下:

ID - ingilizce - turkce
1 - 你好 - merhaba
4 - hi - selam

如您所见,第二和第三条记录不存在。我生成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);

}

感谢您的回复...

1 个答案:

答案 0 :(得分:0)

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

kayit3.getCount();将返回查询返回的记录数。如果没有记录,则它不存在。如果它返回多于1条记录,则记录存在。

希望这有帮助