2013-01-10 26 views
0


我做了一個應用程序,它可以從數據庫中生成隨機字。但有這樣的問題:
我插入一些行到數據庫和ID字段是AUTOINCREMENT。我從數據庫中得到一個隨機單詞。但是,當我刪除一條記錄並插入新記錄時,如您所知,該ID正在跳過舊記錄。
因此,當我嘗試獲取一個隨機單詞時,可能會發生錯誤。我怎麼解決這個問題?
感謝您響應......從數據庫中生成除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); 

} 

我的代碼是在這裏。其實沒有問題。有用。但是,如果隨機生成之前從數據庫中刪除的標識,則會發生錯誤。我認爲我應該爲記錄生成一個有序數字,但我找不到這樣做的方式。我想用另一種方式來做。 (不在身份證上)

+0

請發佈您的代碼和錯誤信息 –

+0

請編輯您的問題。該代碼對我們來說會更好的可讀性。 –

回答

0

最簡單的賭注可能是放棄AUTOINCREMENT(如果可以的話),而是自己處理一個ID。 只需查詢當前最高ID並自行增加。

+0

我應該改變ID字段爲正常的整數,當我向數據庫插入行時,我應該得到最後一個ID並增加它到新行。對? – halilkaya

+0

是的,多數民衆贊成在我所描述的:P –

+0

是的..但我有另一個錯誤! :(例如數據庫中有3行,我刪除第二行,然後當我想添加新的時候,我將如何填寫第二個ID? – halilkaya