1 回答

TA貢獻1788條經(jīng)驗 獲得超4個贊
更改 :-
public void onCreate(SQLiteDatabase db){
String CREATE_TABLE = "CREATE TABLE" + TABLE_CONTACTS + "(" + nomber +
"INTEGER PRIMARYKEY," + namapen + "TEXT," + idPen + "INTEGER,"
+ namaGej + "TEXT," + idGej + "TEXT )";
db.execSQL(CREATE_TABLE);
}
自
public void onCreate(SQLiteDatabase db){
String CREATE_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + nomber +
" INTEGER PRIMARY KEY," + namapen + " TEXT," + idPen + " INTEGER,"
+ namaGej + " TEXT," + idGej + " TEXT )";
db.execSQL(CREATE_TABLE);
}
然后要么:-
刪除應用的數(shù)據(jù),或
卸載應用程序
,然后重新運行該應用程序。
解釋
在嘗試插入之前未出現(xiàn)此問題的原因是,這將是第一次嘗試打開數(shù)據(jù)庫。實例化數(shù)據(jù)庫幫助程序不會導致創(chuàng)建數(shù)據(jù)庫(即,正在執(zhí)行 onCreate 方法,onCreate 僅在嘗試打開數(shù)據(jù)庫(隱式插入)并且數(shù)據(jù)庫實際上不存在時才自動執(zhí)行)。
應該刪除應用程序的數(shù)據(jù)(或卸載應用程序,這將刪除應用程序的數(shù)據(jù))的原因是這將刪除數(shù)據(jù)庫,因此 onCreate 方法將運行(當數(shù)據(jù)庫存在時,它不會運行)。
實際的錯誤是因為CREATE期望在您的案例中創(chuàng)建的內(nèi)容的類型,而您已經(jīng)解析為SQL,因此您試圖告訴它創(chuàng)建一個CREATE TABLEtb_penyakit并且對于SQlite來說,沒有CREATE TABLEtb_penyakit這樣的東西。CREATE TABLE table_name
CREATE TABLEtb_penyakit
如果沒有在上面添加的其他空格,該表將被創(chuàng)建,但列將是:-
然后,插入將失敗,因為您期望存在的列將不存在。
添加回答
舉報