2012-08-10 63 views
0

我一直在創建一個帶有行的列表視圖,這些行值顯示存儲在我的數據庫中的信息。我的問題是我如何解決我收到的錯誤「列_id不存在」?我在網上看了一下,發現你想用as來定義'_id'列,但是當我這樣做時,它就失敗了。也許我失去了一些東西,但嘗試了幾種不同的方法後,我仍然得到這個錯誤。有任何想法嗎?沒有讓我的行值在我的SQLite數據庫的ListView中顯示?

這裏是定義我的查詢方法:

String sql = "create table " + TABLE + "(" + C_ID + " int primary key, " + 
    C_WORKOUT_NAME + " text, " + C_CLASSNAME + " text, " + C_CREATED_AT + " text)"; 

    db.execSQL(sql); 

這裏是通過數據庫值到我行代碼:

@Override 
protected void onResume(){ 
    super.onResume(); 

    cursor = db.query(DBHelper1.TABLE, null, null, null, null, null, 
    DBHelper1.C_CREATED_AT + " DESC"); 
    startManagingCursor(cursor); 

    adapter = new SimpleCursorAdapter(this, R.layout.row, cursor, FROM, TO); 
    list.setAdapter(adapter); 
} 

我也有

static final string C_ID= "_id" 

08-10 19:47:52.176:INFO/ActivityManager(67):開始:意圖{cmp = edu.njit.hss/.History}來自pid 440 08-10 19:47:52.596:DEBUG/AndroidRuntime(440):關閉虛擬機 08-10 19:47:52.596:WARN/dalvikvm(440):threadid = 1:線程以未捕獲的異常退出(group = 0x40015560 ) 08-10 19:47:52.626:錯誤/ AndroidRuntime(440):致命異常:主 08-10 19:47:52.626:錯誤/ AndroidRuntime(440):java.lang.RuntimeException:無法恢復活動{ edu.njit.hss/edu.njit.hss.History}:java.lang.IllegalArgumentException:列'_id'不存在 08-10 19:47:52.626:ERROR/AndroidRuntime(440):at android.app。 ActivityThread.performResumeActivity(ActivityThread.java:2095) 08-10 19:47:52.626:ERROR/AndroidRuntime(440):at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2110) 08-10 19:47: 52.626:錯誤/ AndroidRuntime(440):在android.app.ActivityThread.handleLaunchAc tivity(ActivityThread.java:1643)

回答

0

我個人需要更多的信息來幫助你。 當它確切地給這個錯誤? 如果在您顯示的代碼中沒有對該列的請求,那麼它如何表示不存在? (我想這是它的任何其他部分)

作爲一個起點,我建議你看看到DB:

  • 如果你沒有root權限的設備,執行你的應用程序在模擬器
  • 拉離DDMS文件 - 轉到文件樹,然後導航到/data/data/your.app.package/databases/yourDatabaseName
  • 打開它以源碼的瀏覽器(利塔,SQLiteDBBrowser)看看它如何看起來更新信息在這裏,如果你仍然需要它

...我們將在這裏等待:)

+0

好吧我會做,並明天發回=) – user1588307 2012-08-11 01:00:50

相關問題