2013-01-21 439 views
0

我的數據庫創建和填充沒有任何問題。我甚至有一個自定義適配器來顯示我的活動列表視圖中的行。 問題是我的_id列實際上沒有任何id。 我有一個對話框出現在listItemClick與數據被放入文本框,底部有按鈕,我試圖讓'刪除'按鈕工作,以便用戶可以刪除該記錄。我試圖刪除調用_id的記錄,但是我的數據庫的ID列對於我的所有記錄都是空的。對話框顯示每個項目的ID號碼,它們全部爲0,當我用sqlite數據庫瀏覽器打開數據庫時,id列對於每條記錄都是完全空的。任何人都可以請幫助,並告訴我爲什麼這是? 這是我使用的教程: http://android-er.blogspot.co.uk/2011/06/edit-row-in-sqlite-database-using.htmlAndroid的SQLite數據庫的SQLite數據庫空_id字段

一些代碼:

創建數據庫和表:

 public static final String KEY_ID = "_id"; 
    public static final String KEY_LESSON = "Lesson"; 
    public static final String KEY_DAY = "Day"; 
    public static final String KEY_START = "Start"; 
    public static final String KEY_END = "End"; 
    public static final String KEY_LOCATION = "Location"; 

    private SQLiteDatabase db; 
    private DBHelper dbHelper; 
    private final Context context; 

    private static final String DATABASE_CREATE = "create table Schedule" + " (" + KEY_ID + " INTERGER PRIMARY KEY," 
    + KEY_LESSON + " text not null, " + KEY_DAY + " text not null," + KEY_START + " text not null, " + KEY_END 

public void deleteEntry(int id) { 

    db.delete(DATABASE_TABLE, KEY_ID + "=" +id, null); 

} 

對話:

 myDialog.setPositiveButton("Delete", new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface arg0, int arg1) { 

     db.open(); 
    db.deleteEntry(item_id); 

    } 
    }); 
+1

可以確保查詢是正確的?例如沒有閉合支架! – test

+0

對不起,我非常確定查詢語法是正確的,雖然複製和粘貼可能不太準確。 – Incognito

回答

3

這是錯誤的:

" INTERGER PRIMARY KEY," 

這會更好:

" INTEGER PRIMARY KEY AUTOINCREMENT," 
+0

我做了一些研究,並有一種印象,如果整數主鍵被指定,那麼它會自動自動增量?我確實嘗試過,但它給了我錯誤'AUTOINCREMENT僅允許在整數主鍵(代碼1)' – Incognito

+0

是的,它會。你必須拼寫* INTEGER *,這是主要的。只要確保你看到:你的代碼中有__INTERGER__。 –

+0

啊,我花了數小時試圖找出問題後,我覺得自己像個傻瓜!非常感謝,這已經改正了我的問題。 – Incognito