我的数据库在我的应用程序工作正常,然后我添加了里程表到数据库。现在我得到一个表检查没有列命名里程表:,而编译: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