2009-06-01 48 views
16

可能重複:
Android Sqlite - 「No Such Table」 ErrorSQLite的例外:沒有這樣的表錯誤

我們正在努力開發在Android上的應用程序。我們正在使用SQLite數據庫,並在手機上我們得到

SQLiteException:沒有這樣的表。

它在模擬器上工作正常。

任何人都可以提供任何輸入?

+1

你有一個乾淨的模擬器運行的代碼?你是否還證實創建表的代碼正在執行?接下來的步驟是將sqlite db關閉,並使用sqlite數據庫瀏覽器查看它以檢查表是否確實存在。 – hacken 2009-06-01 17:31:24

+0

嗨!我已經創建了一個數據庫,只是使用已經創建的數據庫,所以表已經創建好了。我只是在現有的表上做SELECT。我關心的是它在模擬器上正常工作,而不是在電話上 – 2009-06-02 03:57:37

+0

你確認表格在那裏嗎?桌子不在電話上的可能性比選擇不工作的可能性要大得多。再次驗證您的數據庫是否正確創建非常簡單。 – hacken 2009-06-02 04:44:48

回答

14

如果您沒有正確指定數據庫文件名,我相信它會回落到創建一個空數據庫。這通常是'表未找到'的原因。檢查你的路徑和數據庫文件名。

2

有些人已經能夠使用here提到的步驟解決問題。在我看來,這個問題存在於某些版本的Android 2.2上。我在代碼中加入了這個改變,儘管我仍然在尋找Beta測試者來看看它是否真正起作用。

6

我曾遇到過同樣問題的不同味道。

我在嘗試插入時遇到了no such table錯誤。

之前插入的代碼在調用

mDb = mDbHelper.getWritableDatabase(); 

getWritableDatabase(),當所謂的第一次會叫onCreate()

我有我的SQL查詢到這個onCreate方法

public void onCreate(SQLiteDatabase db) { 

      db.execSQL(DATABASE_CREATE); 
      Log.v("INFO1","creating db"); 
      //Toast.makeText(mCtx, "created", Toast.LENGTH_SHORT).show(); 
     } 
內創建表

所以對我來說,發生了什麼事,db成功創建時,應用程序第一次運行BU由於一些其他錯誤,沒有表格。 稍後,無論何時運行應用程序,onCreate()都不會被調用,因爲db已經存在,因此沒有創建表,因此所有其他SQL命令都失敗。

所以我感動創建表出來onCreate(),而現在它的工作

相關問題