2013-02-17 54 views
1
public static final String Database_Name="content.db"; 
public static final int Database_Version=1; 
public static final String Table_Name="images"; 
public static final String Column1="contentid"; 
public static final String Column2="content_type"; 
public static final String Column3="content"; 
public static final String Column4="has_update"; 
public static final String Column5="server"; 
public static final String Column6="_id"; 
public static final String Create_Database="CREATE TABLE" + Table_Name + 
     "(" + Column6 + "INTEGER PRIMARY KEY AUTOINCREMENT,"+ Column1 + "LONG," + Column2 + "TEXT," 
+ Column3 + "TEXT," + Column4 + "INTEGER," + Column5 + "INTEGER" + ");"; 

我在android中使用上面的聲明創建了一個sqlite表,並且執行代碼執行成功,但是在logcat中給出了一個異常說列內容沒有被創建,有什麼會導致這個問題我無法理解。請幫助。 ............列沒有在sqlite數據庫中創建?

這是logcat的聲明

02-17 19:36:15.658: E/SQLiteLog(31602): (1) table images has no column named content 

回答

2

你可以複製/粘貼錯誤消息?

我認爲你的創建查詢中的一個問題是你不會在列名和類型之間留有空間。不知道這是否是真正的問題,但對我來說聽起來有問題。

編輯: 我的意思是你創建的查詢應該像

public static final String Create_Database = 
"CREATE TABLE " + Table_Name + 
     " (" + Column6 + " INTEGER PRIMARY KEY AUTOINCREMENT, " + 
     Column1 + " LONG, " + 
     Column2 + " TEXT, " + 
     Column3 + " TEXT, " + 
     Column4 + " INTEGER, " + 
     Column5 + " INTEGER);"; 
+0

我不知道我做了什麼,但我想我已經解決了這個問題,但現在另一個表中我有相同的錯誤一列不是在表中創建可以有人解釋我的問題的原因我在這裏做錯了什麼? – 2013-02-17 16:16:55

+0

機會是,另一個CREATE TABLE DDL就像你給出的例子一樣。在執行之前檢查查詢字符串。您缺少關鍵字和列/表名稱之間的空格。 – 323go 2013-02-17 16:34:16