我做了一个从数据库生成随机单词的应用程序。但是存在这样的问题:
我在数据库中插入了一些行,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)
答案 0 :(得分:0)
如果可以,最简单的下注可能是放弃AUTOINCREMENT,而是自己处理ID。 只需查询最高当前ID并自行增加。