2013-04-03 27 views
0

我得到error no such table not found在我的項目中我使用了2個數據庫。一個是完美的工作,但另一個顯示錯誤。android錯誤顯示沒有這樣的表

這裏是我的代碼

public void onCreate(SQLiteDatabase db) { 
    // TODO Auto-generated method stub 
    String CREATE_ADDRESS = " CREATE TABLE " + TABLE_ADDRESS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"+ KEY_STATE + " TEXT," + KEY_CITY + " TEXT," + KEY_ZIPCODE + " TEXT," + KEY_STREET + " TEXT," + KEY_DOOR + " TEXT,"+ ");";  
    try{ 
     db.execSQL(CREATE_ADDRESS); 
    }catch (SQLException e) 
    { 
     e.printStackTrace(); 
    } 

}

我試圖用這個代碼

 
public void addAddress(AddressList address) 
    { 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues values = new ContentValues(); 
     values.put(KEY_STATE, address.getState()); 
     values.put(KEY_CITY, address.getCity()); 
     values.put(KEY_ZIPCODE, address.getZipcode()); 
     values.put(KEY_STREET, address.getStreet()); 
     values.put(KEY_DOOR, address.getDoor()); 
     db.insert(TABLE_ADDRESS,null, values); 

     db.close(); 
    } 

回答

0

有一個額外的,(逗號)在創建表的語法插入數據在最後一個TEXT之後。你需要刪除它,因爲根據create table的語法它是無效的。

使用本

String CREATE_ADDRESS = " CREATE TABLE " + TABLE_ADDRESS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"+ KEY_STATE + " TEXT," + KEY_CITY + " TEXT," + KEY_ZIPCODE + " TEXT," + KEY_STREET + " TEXT," + KEY_DOOR + " TEXT"+ ");"; 
+0

雅我連同樣的錯誤可能發生 – Siva

0

因爲你DML說法是不正確的,則不會創建你的第二個表。您必須從導致錯誤的語句中刪除最後一個逗號。表格最後一列的後面不能是逗號,因爲它是最後一列。

+ KEY_DOOR + " TEXT"+ "); 
+0

雅我連同樣的錯誤可能發生 – Siva

+0

@ user1758457你刪除最後一個逗號? – Sajmon

+0

是的,我刪除了,但我仍然有同樣的問題 – Siva

0

您已包括, & ;分號最後一列。嘗試刪除最後, & ;最後可能會修復您的錯誤。

public void onCreate(SQLiteDatabase db) { 
// TODO Auto-generated method stub 
String CREATE_ADDRESS = " CREATE TABLE " + TABLE_ADDRESS + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"+ KEY_STATE + " TEXT," + KEY_CITY + " TEXT," + KEY_ZIPCODE + " TEXT," + KEY_STREET + " TEXT," + KEY_DOOR + " TEXT" + ")";  
try{ 
    db.execSQL(CREATE_ADDRESS); 
}catch (SQLException e) 
{ 
    e.printStackTrace(); 
} 
}