0


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

}

我的代码在这里。其实没有问题。有用。但是当 random 生成一个之前已从数据库中删除的 ID 时,它会出错。我认为我应该为记录生成一个有序的数字,但我找不到这样做的方法。我想用另一种方式来做。(不在身份证上)

4

1 回答 1

0

如果可以的话,您最简单的选择可能是放弃 AUTOINCREMENT,而是自己处理提供 ID。只需查询当前的最高 ID 并自行递增。

于 2013-01-10T14:30:31.040 回答