从ID字段以外的数据库生成随机字

时间:2013-01-10 14:06:37

标签: android sqlite random


我做了一个从数据库生成随机单词的应用程序。但是存在这样的问题:
我在数据库中插入了一些行,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);

}

我的代码在这里。实际上没有问题。有用。但是当随机生成之前已从数据库中删除的ID时,它会产生错误。我认为我应该为记录生成有序数字,但我找不到这样做的方法。我想以另一种方式做到这一点。 (不是ID)

1 个答案:

答案 0 :(得分:0)

如果可以,最简单的下注可能是放弃AUTOINCREMENT,而是自己处理ID。 只需查询最高当前ID并自行增加。