2012-07-01 101 views
0

我正嘗試使用SQLite數據庫在android中本地存儲電子郵件。當我第一次打電話給context.getWritableDatabase()時,數據庫不存在並且被創建。我的create語句得到一個語法錯誤......我的代碼看起來像這樣...在Android中執行SQLite時出現語法錯誤

private static final String DATABASE_NAME = "views.db"; 
    private static final int DATABASE_VERSION = 1; 

    public static final String TABLE_VIEWS = "views"; 

    private static final String KEY_ID = "id"; 
    private static final String KEY_INDEX = "index"; 
    private static final String KEY_FROM = "from"; 
    private static final String KEY_UNREAD = "unread"; 
    private static final String KEY_SUBJECT = "subject"; 
    private static final String KEY_BODY = "body"; 


    // Database creation sql statement 
    private static final String CREATE_VIEWS_TABLE = "CREATE TABLE " + TABLE_VIEWS + " (" 
      + KEY_ID + " INTEGER PRIMARY KEY," 
      + KEY_INDEX + " INTEGER NOT NULL," 
      + KEY_UNREAD + " TEXT NOT NULL," 
      + KEY_SUBJECT + " TEXT NOT NULL," 
      + KEY_FROM + " TEXT NOT NULL," 
      + KEY_BODY + " TEXT NOT NULL);"; 

我是新來的SQLite的語法和我一直在尋找這是什麼原因沒有用。任何想法是什麼造成這種情況?數據庫真的是本地存儲這些數據的最佳方式。

如下確切的錯誤讀取..

07-01 17:54:42.827: E/AndroidRuntime(3036): Caused by: android.database.sqlite.SQLiteException: near "index": syntax error: CREATE TABLE views (id INTEGER PRIMARY KEY,index INTEGER NOT NULL,unread TEXT NOT NULL,subject TEXT NOT NULL,from TEXT NOT NULL,body TEXT NOT NULL); 

回答

6

不能使用關鍵字「指數」作爲您的表的列名,將其更改爲別的東西一樣tbl_index代替。

+1

可能對''KEY_FROM =「也有問題。雙引號(無處不在!)也是一種選擇,不是一個非常令人愉快的選擇,而是一個選項。 –

相關問題