2016-11-23 38 views
-3

插入值我試圖找到爲什麼我的應用程序崩潰的開始,和調試器說,錯誤而在DB

「E/SQLiteLog:(1)沒有這樣的表:分類 E/SQLiteDatabase:錯誤插入名稱=沙拉 android.database.sqlite.SQLiteException:沒有這樣的表:類別(代碼1):,在編譯時:INSERT INTO類別(名稱)VALUES(?)「

即使在我查看我的代碼後,就像表格分類一樣,錯誤不應該出現。

public class DatabaseHandler extends SQLiteOpenHelper { 

// All Static variables 
// Database Version 
private static final int DATABASE_VERSION = 1; 

// Database Name 
private static final String DATABASE_NAME = "contactsManager"; 

// Contacts table name 
private static final String TABLE_CONTACTS = "contacts"; 

// Contacts Table Columns names 
private static final String KEY_ID = "id"; 
private static final String KEY_NAME = "name"; 
private static final String KEY_PH_NO = "phone_number"; 

public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

// Creating Tables 
@Override 
public void onCreate(SQLiteDatabase db) { 
    String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" 
      + KEY_ID + " INTEGER PRIMARY KEY," + KEY_NAME + " TEXT," 
      + KEY_PH_NO + " TEXT" + ")"; 
    db.execSQL(CREATE_CONTACTS_TABLE); 
} 

// Upgrading database 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    // Drop older table if existed 
    db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS); 

    // Create tables again 
    onCreate(db); 
} 
+1

卸載並在您的設備中再次運行應用程序,我認爲問題與您的數據庫版本有關(因爲您在第一次運行後在表列中進行了更改,因此它們沒有因相同的數據庫版本而得到更新)。 –

+0

@ReadyAndroid確實。太尷尬了......謝謝你! – JasonM

回答

0

你沒有TEXT使用前給空間這個

private static final String CREATE_MEALS = "CREATE TABLE " 
    + Meals + "(" + KEY_ID + " INTEGER PRIMARY KEY," + mealsName 
    + " TEXT unique," + desc + " TEXT," + size + " TEXT," 
    + price + " TEXT" + ")"; 
+0

現在,我只將數據傳遞給「CREATE_CATEGORIES」,它說錯誤在那裏,所以我懷疑造成的錯誤是CREATE MEALS在這一點上,但無論如何感謝。 – JasonM

0

變化private static final int DATABASE_VERSION = 1;private static final int DATABASE_VERSION = 2;也許你已經修改數據庫結構的價值,忘了更新這種方式。告訴我它是否有效。

0

//創建數據庫處理程序的對象 MyDatabaseHelper dbHelperDriver = new MyDatabaseHelper(this);

//使用對象插入類別 dbHelperDriver.addCategory(「TestCategory」);