2012-07-31 260 views
-7

可能重複:
inserting data in sqlite database errors將數據插入SQLite數據庫

我試圖從一種形式的答案在與Android的應用程序。活動一切正常,但問題是我無法將答案插入到數據庫中。

,這裏是錯誤我在logcat中得到:

 07-31 02:34:44.092: E/Database(398): Error inserting REP3=oui REP4=non REP1=oui REP2=oui LONGITUDE=0.0 ZONE=rabat REP5=oui LATITUDE=0.0 
     07-31 02:34:44.092: E/Database(398): android.database.sqlite.SQLiteException: table Appreciation has no column named REP4: , while compiling: INSERT INTO Appreciation(REP3, REP4, REP1, REP2, LONGITUDE, ZONE, REP5, LATITUDE) VALUES(?, ?, ?, ?, ?, ?, ?, ?); 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteProgram.native_compile(Native Method) 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110) 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59) 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:41) 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1026) 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1412) 
     07-31 02:34:44.092: E/Database(398): at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1285) 
     07-31 02:34:44.092: E/Database(398): at com.stage.sondage.SurveyAdapter.insertAppreciation(SurveyAdapter.java:75) 
     07-31 02:34:44.092: E/Database(398): at com.stage.sondage.Questionnaire$1.onClick(Questionnaire.java:64) 
     07-31 02:34:44.092: E/Database(398): at android.view.View.performClick(View.java:2364) 
     07-31 02:34:44.092: E/Database(398): at android.view.View.onTouchEvent(View.java:4179) 
     07-31 02:34:44.092: E/Database(398): at android.widget.TextView.onTouchEvent(TextView.java:6540) 
     07-31 02:34:44.092: E/Database(398): at android.view.View.dispatchTouchEvent(View.java:3709) 
     07-31 02:34:44.092: E/Database(398): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
     07-31 02:34:44.092: E/Database(398): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
     07-31 02:34:44.092: E/Database(398): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
     07-31 02:34:44.092: E/Database(398): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
     07-31 02:34:44.092: E/Database(398): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
     07-31 02:34:44.092: E/Database(398): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
     07-31 02:34:44.092: E/Database(398): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
     07-31 02:34:44.092: E/Database(398): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 
     07-31 02:34:44.092: E/Database(398): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 
     07-31 02:34:44.092: E/Database(398): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 
     07-31 02:34:44.092: E/Database(398): at android.os.Handler.dispatchMessage(Handler.java:99) 
     07-31 02:34:44.092: E/Database(398): at android.os.Looper.loop(Looper.java:123) 
     07-31 02:34:44.092: E/Database(398): at android.app.ActivityThread.main(ActivityThread.java:4363) 
     07-31 02:34:44.092: E/Database(398): at java.lang.reflect.Method.invokeNative(Native Method) 
     07-31 02:34:44.092: E/Database(398): at java.lang.reflect.Method.invoke(Method.java:521) 
     07-31 02:34:44.092: E/Database(398): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
     07-31 02:34:44.092: E/Database(398): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
     07-31 02:34:44.092: E/Database(398): at dalvik.system.NativeStart.main(Native Method) 

它說,錯誤是:

 7-31 02:34:44.092: E/Database(398): android.database.sqlite.SQLiteException: table Appreciation has no column named REP4: , while compiling: INSERT INTO Appreciation(REP3, REP4, REP1, REP2, LONGITUDE, ZONE, REP5, LATITUDE) VALUES(?, ?, ?, ?, ?, ?, ?, ?); 

,並在

 07-31 02:34:44.092: E/Database(398): at com.stage.sondage.SurveyAdapter.insertAppreciation(SurveyAdapter.java:75) 
     07-31 02:34:44.092: E/Database(398): at com.stage.sondage.Questionnaire$1.onClick(Questionnaire.java:64) 

這是

 survey.insertAppreciation(appreciation); //in Questionnaire.java 
and 
      return bdd.insert(APPRECIATION_TABLE_NAME, null, values);// in survey adapter 

它說,COLUMN REP4不表鑑賞存在,但是我確信,雖然聲明類增值擴展OpenHelper和方法,其中我在表

謝插入信息的類此列存在ü您的幫助

+4

第一個錯誤:將您的整個代碼發佈到此處。第二個錯誤:發佈你昨天沒有修改過的問題。 – 2012-07-31 04:54:51

+0

hello;我修改了它。這是不是我在這裏張貼的錯誤 – sigway 2012-07-31 15:09:46

回答

1

你缺少一個空間,REP4的列名後TEXT NOT NULL前:
你的代碼是:

private static final String REQUETE_CREATION_BDD = "CREATE TABLE "+ APPRECIATION_TABLE_NAME + " (" + COLUMN_IDAPPRECIATION 
     + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_ZONE 
     + " TEXT NOT NULL, " +COLUMN_LATITUDE 
     + " DOUBLE NOT NULL, " +COLUMN_LONGITUDE 
     + " DOUBLE NOT NULL, " + COLUMN_REP1 + " TEXT NOT NULL, " 
     + COLUMN_REP2 + " TEXT NOT NULL,"+COLUMN_REP3 + " TEXT NOT NULL," 
     +COLUMN_REP4+"TEXT NOT NULL,"+COLUMN_REP5 +" TEXT NOT NULL);"; 

它應該是:

private static final String REQUETE_CREATION_BDD = "CREATE TABLE "+ APPRECIATION_TABLE_NAME + " (" + COLUMN_IDAPPRECIATION 
     + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COLUMN_ZONE 
     + " TEXT NOT NULL, " +COLUMN_LATITUDE 
     + " DOUBLE NOT NULL, " +COLUMN_LONGITUDE 
     + " DOUBLE NOT NULL, " + COLUMN_REP1 + " TEXT NOT NULL, " 
     + COLUMN_REP2 + " TEXT NOT NULL,"+COLUMN_REP3 + " TEXT NOT NULL," 
     +COLUMN_REP4+" TEXT NOT NULL,"+COLUMN_REP5 +" TEXT NOT NULL);"; 
+0

我做了這些更改,但問題仍然存在 – sigway 2012-08-01 02:46:15