2013-03-27 35 views
2

我試圖創建Android的SQLite數據庫,並收到此錯誤創建SQLite數據庫時出錯:「android.database.sqlite.SQLiteException:near(9598)」?

"android.database.sqlite.SQLiteException: near(9598)." 

在這條線:

db.execSQL("CREATE TABLE " + TABLE_CONTACTS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," 
      + KEY_PH_NO + " TEXT)"); 

這是怎麼回事錯在這裏?

+1

我認爲這將有助於創建一個單獨的字符串,該SQL命令並打印字符串..也許如果你編輯的問題,並補充說,也將幫助我們多一點來解決問題:) – Cata 2013-03-27 13:26:33

+0

請發佈整體該類的代碼。 – 2013-03-27 13:33:51

回答

2

該表是否已經存在?而是使用...

CREATE TABLE IF NOT EXISTS ... 

,並添加;

... + KEY_PH_NO + " TEXT);"); 
+0

這是一個很好的觀點,如果它解決了我自己擁有的問題+1 – CloudyMarble 2013-03-27 13:24:33

+0

不,表格不存在,並且我添加了你所說的內容,但是仍然出現錯誤,但近(9598)更改爲近12542)現在! – 2013-03-27 13:24:40

+0

您確定所有變量('KEY_ID','KEY_PH_NO',...)包含有效的列/表名嗎? - 沒有列兩次?我知道,這聽起來像一個愚蠢的問題,但是,你的陳述基本上沒有任何問題。打開*可寫*數據庫? – Trinimon 2013-03-27 13:30:47

0

儘量保持KEY_ID是

private static final String KEY_ID = "_id"; 

希望這有助於你

0

您嘗試創建語句(SQLFIDDLE)顯示它實際上是好的,因爲沒有在012中定義的例外拋出讓我覺得建築的聲明中它的東西,如文檔指出:

SQLiteException

一個SQLite異常,說明有一個與SQL 錯誤解析執行

所以我會嘗試分離這兩個步驟,首先建立語句在一個字符串(包括輸出,以確保它看起來像),然後嘗試執行它。