2012-02-11 44 views
0

我正在創建一個應用程序,用於將EditText的輸入字符串值輸入到SQLite數據庫中。當通過模擬器運行應用程序時,會在最初創建數據庫時收到logcat錯誤消息。 logcat錯誤消息如下。當準備'create table if not existinfoTable(_idinterger primary key,sNametext not null,「)時,0x1392b8上的E/Database(1386):失敗1(接近」existinfoTable「:語法錯誤)在Eclipse中的Android'創建表如果不存在'錯誤

01-23 16:47:39.613: wUrltext不爲null,uNametext不爲null,pWordtext不爲null);'。

它所指的OnCreate方法如下。我不確定導致問題的語法錯誤是什麼。任何幫助,將不勝感激。

public void onCreate(SQLiteDatabase db) { 
    String sqlDataStore = "create table if not exist" + 
     TABLE_NAME_INFOTABLE + "("+ BaseColumns._ID + "interger primary key autoincrement," 
     + COLUMN_NAME_SITE + "text not null," 
     + COLUMN_NAME_ADDRESS + "text not null," 
     + COLUMN_NAME_USERNAME + "text not null," 
     + COLUMN_NAME_PASSWORD + "text not null),"; 
    db.execSQL(sqlDataStore); 
} 

回答

10

從外觀上來看,你拼寫錯誤「整」,它看起來像你需要前「整數」一個空格,後「存在」(我想應該是「存在」)和前「(」所以....

String sqlDataStore = "create table if not exists " + 
     TABLE_NAME_INFOTABLE + " ("+ BaseColumns._ID + " integer primary key autoincrement," 
       + COLUMN_NAME_SITE + "text not null," 
       + COLUMN_NAME_ADDRESS + "text not null," 
       + COLUMN_NAME_USERNAME + "text not null," 
       + COLUMN_NAME_PASSWORD + "text not null)"; 

您也可以省略「」或‘;’在聲明的結尾

+0

也需要每個'文本之前不進行空間null' – Squonk 2012-02-11 01:39:27

+0

感謝醒目。那些但我仍然得到相同的錯誤。這是我的logcat的副本。 – user1165694 2012-02-11 02:44:14

+0

01-23 18:43:03.017:E/AndroidRuntime(1578):android。如果不存在infoTable(_idinteger主鍵自動增量,sName文本不爲空,wUrl文本不爲空,uName文本不爲空,pWord文本不爲空), 01- 23 18:43:03.017:E/AndroidRuntime(1578):\t at android.database.sqlite.SQLiteDatabase.native_execSQL(Native Method) 01-23 18:43:03.017:E/AndroidRuntime(1578):\t在android。 database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1610) – user1165694 2012-02-11 02:56:13