我的數據庫在我的應用程序工作正常,然後我添加了里程錶到數據庫。現在我得到一個表檢查沒有列命名里程錶:,而編譯:INSERT INTO檢查(codriver,里程錶,駕駛員,datetime,vehicle_id,狀態,vehicle_type)值(?,?,?,?,?,?,? ); logcat錯誤。我檢查了我的數據庫適配器和代碼工作正常,但出於某種原因,它不認可我添加的新列。 下面是從DBandroid中的sqlite無法識別新的列我添加了
@Override
public void onCreate(SQLiteDatabase db)
{
String DATABASE_CREATE = "create table inspections ("
+ "_id integer primary key autoincrement, "
+ "vehicle_id string not null, "
+ "vehicle_type string not null, "
+ "datetime integer not null, "
+ "driver string not null, "
+ "codriver string , "
+ "status integer not null, "
+ "odometer string not null "
+ ");";
db.execSQL(DATABASE_CREATE);
}
這裏的代碼是主分貝
public class SignalSetDBHelper extends SQLiteOpenHelper {
private static final String DATABASE_NAME = "db";
private static final int DATABASE_VERSION = 1;
public SignalSetDBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
// Method is called during creation of the database
@Override
public void onCreate(SQLiteDatabase db) {
CurrentStateTable.onCreate(db);
HoursOfServiceTable.onCreate(db);
InspectionsTable.onCreate(db);
}
// Method is called during an upgrade of the database,
// e.g. if you increase the database version
@Override
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
CurrentStateTable.onUpgrade(database, oldVersion, newVersion);
HoursOfServiceTable.onUpgrade(database, oldVersion, newVersion);
InspectionsTable.onUpgrade(database, oldVersion, newVersion);
}
}
我可以包括更多的代碼的代碼,但可以肯定的錯誤是在上面的代碼中
更新: 卸載模擬器上的應用程序,仍然收到相同的錯誤。這裏是logcat 03-28 12:52:59.135:D/dalvikvm(331):GC_EXTERNAL_ALLOC在78ms中釋放了885個對象/ 63248字節 03-28 12:53:05.695:D/dalvikvm(331):GC_FOR_MALLOC釋放了4480對象/ 261760字節在73毫秒 03-28 12:53:17.065:W/KeyCharacterMap(331):無鍵盤爲ID 0 03-28 12:53:17.065:W/KeyCharacterMap(331):使用默認鍵盤映射: system/usr/keychars/qwerty.kcm.bin 03-28 12:53:28.615:I/Database(331):sqlite返回:錯誤代碼= 1,msg =表格檢查沒有列名稱里程錶 03-28 12 :53/28.715:D/dalvikvm(331):GC_FOR_MALLOC釋放8584個對象/ 420616字節在84ms中 03-28 12:53:28.715:電子數據庫(331):插入codriver時出錯=里程錶= 4321 driver = jim datetime = 1332964380 vehicle_id = ET 432 status = 1 vehicle_type = truck 03-28 12:53:28.715:電子/數據庫(331):android.database.sqlite.SQLiteException:表檢查沒有列命名里程錶:,編譯時:INSERT INTO檢查(codriver,里程錶,驅動程序,datetime,vehicle_id,狀態,vehicle_type)VALUES(?,?,?,?,?,?,?); 03-28 12:53:28.715 E/Database(331):at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method) 03-28 12:53:28.715:E/Database(331):at android .database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91) 03-28 12:53:28.715:E/Database(331):at android.database.sqlite.SQLiteCompiledSql。(SQLiteCompiledSql.java:64) 03 -28 12:53:28.715:E/Database(331):at android.database.sqlite.SQLiteProgram。(SQLiteProgram.java:80) 03-28 12:53:28.715:E/Database(331):at android (SQLiteStatus.java:36) 03-28 12:53:28.715:E/Database(331):at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145) 03 -28 12:53:28.715:E /數據庫(331):在android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteD電子/數據庫(331):at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1410) 03-28 12:53:28.715: E/Database(331):at com.signalsetapp.database.InspectionDBAdapter.insertInspection(InspectionDBAdapter.java:54) 03-28 12:53:28.715:E/Database(331):at com.signalsetapp.report.save report.java:120) 03-28 12:53:28.715 E/Database(331):at java.lang.reflect.Method.invokeNative(Native Method) 03-28 12:53:28.715:E/Database (331):at java.lang.reflect.Method.invoke(Method.java:521) 03-28 12:53:28.715:E/Database(331):at android.view.View $ 1.onClick(View。 java:2067) 03-28 12:53:28.715:E/Database(331):at android.view.View.performClick(View.java:2408) 03-28 12:53:28.715:E/Database 331):在droid.view.View $ PerformClick.run(View.java:8816) 03-28 12:53:28.715:E/Database(331):at android.os.Handler.handleCallback(Handler.java:587) 03 -28 12:53:28.715:E /數據庫(331):在android.os.Handler.dispatchMessage(Handler.java:92) 03-28 12:53:28。715:E/Database(331):at android.os.Looper.loop(Looper.java:123) 03-28 12:53:28.715:E/Database(331):at android.app.ActivityThread.main ActivityThread.java:4627) 03-28 12:53:28.715:E/Database(331):at java.lang.reflect.Method.invokeNative(Native Method) 03-28 12:53:28.715:E/Database (331):at java.lang.reflect.Method.invoke(Method.java:521) 03-28 12:53:28.715:E/Database(331):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller (ZygoteInit.java:868) 03-28 12:53:28.715:E/:53:28.715:E /數據庫(331):在dalvik.system.NativeStart.main(本地方法)
我會嘗試完全卸載和調試開裂頭之前安裝。 – kosa 2012-03-28 18:56:30
我會卸載什麼? – Aaron 2012-03-28 18:58:51
你的應用程序(假設這是原生android應用程序),否則我很抱歉! – kosa 2012-03-28 19:02:34