2013-02-11 46 views
0

我創建了一個方法Android SQLite沒有這樣的表?

public boolean addWord(Word w, String name) { 
    try { 
     ContentValues cv = new ContentValues(); 
     cv.put(COLUMN_NAME, name); 
     cv.put(COLUMN_WORD_FOREIGN, w.getWordForeign()); 
     cv.put(COLUMN_WORD_ENGLISH, w.getWordEnglish()); 
     cv.put(COLUMN_CORRECT, w.getCorrect()); 
     database.insert(TABLE_VOCAB_WORDS, null, cv); 
     return true; 
    } catch (SQLiteException e) { 
     System.out.println("SQL ERROR"); 
     return false; 
    } 
} 

但每當我稱呼它,我得到一個表中沒有發現錯誤。但是,我用它來創建數據庫的SQL語句如下:

private static final String CREATE_DB = "CREATE TABLE " + TABLE_VOCAB_INFO 
     + "(" + COLUMN_NAME + " TEXT NOT NULL PRIMARY KEY," + COLUMN_URL 
     + " TEXT NOT NULL," + COLUMN_DOWNLOADED 
     + " TEXT NOT NULL); CREATE TABLE " + TABLE_VOCAB_WORDS + "(" 
     + COLUMN_NAME + " TEXT NOT NULL," + COLUMN_WORD_FOREIGN 
     + " TEXT NOT NULL," + COLUMN_WORD_ENGLISH + " TEXT NOT NULL," 
     + COLUMN_CORRECT + " BYTE NOT NULL, PRIMARY KEY (" + COLUMN_NAME 
     + "," + COLUMN_WORD_FOREIGN + "));"; 

由於我清楚地創建表時,我不太清楚是什麼錯誤實際發生 在這裏?

有什麼建議嗎?

+3

'COLUMN_CORRECT +「BYTE NOT NULL ...'你之前'BYTE'需要 2013-02-11 17:34:48

+0

1 /後堆棧跟蹤2 /檢查創建表時登錄。 3/adb shell和sqlite3來查看你的數據庫4 /我不認爲在一個查詢中創建2個表格5 /我會在表格名稱和(。6 /你的第二個表格中缺少a)之間添加一個空格。 7 /顯然你不是在創建表格 – njzk2 2013-02-11 17:36:03

+0

也是「我清楚地創建表格」,而你的沒有,沒有給出非常好的圖像。 – njzk2 2013-02-11 17:36:39

回答

3

我認爲這不起作用的原因是;這個字符是不允許的。因此,嘗試有兩個做分離Strings這樣:

String create_vocal_table_info_query = "CREATE TABLE " + TABLE_VOCAB_INFO 
     + "(" + COLUMN_NAME + " TEXT NOT NULL PRIMARY KEY," 
     + COLUMN_URL + " TEXT NOT NULL," 
     + COLUMN_DOWNLOADED + " TEXT NOT NULL)"; 

String create_vocal_table_words_query = "CREATE TABLE " + TABLE_VOCAB_WORDS + "(" 
     + COLUMN_NAME + " TEXT NOT NULL," 
     + COLUMN_WORD_FOREIGN + " TEXT NOT NULL," 
     + COLUMN_WORD_ENGLISH + " TEXT NOT NULL," 
     + COLUMN_CORRECT + " BYTE NOT NULL, PRIMARY KEY (" 
     + COLUMN_NAME + "," + COLUMN_WORD_FOREIGN + "))"; 
+0

謝謝,救了我的屁股。我有一個很長的CREATE語句創建了很多表。這在以前的API級別上工作得很好(我認爲它是2.2),但停止工作3.0 – momo 2013-06-09 06:22:40

+0

@momo歡迎您:) – Sajmon 2013-06-09 18:10:20