2013-02-11 95 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