我试图插入数据到一个大型项目的一部分表中。我收到上面的错误,无法弄清楚如何创建表。创建表的代码在下面,表名称是检查。所以我很困惑。数据库(3300):sqlite返回:错误代码= 1,msg =没有这样的表:但表名是检查?
这里是logcat的信息
02-27 18:38:45.956: I/Database(3559): sqlite returned: error code = 1, msg = no such table: inspections
02-27 18:38:45.967: E/Database(3559): Error inserting co_driver= driver=ewrre vehicle_id=ET 432 status=1 date_time=40 vehicle_type=truck
02-27 18:38:45.967: E/Database(3559): android.database.sqlite.SQLiteException: no such table: inspections: , while compiling: INSERT INTO inspections(co_driver, driver, vehicle_id, status, date_time, vehicle_type) VALUES(?, ?, ?, ?, ?, ?);
02-27 18:38:45.967: E/Database(3559): at android.view.View.performClick(View.java:2408)
下面是创建该表
private static final 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 "
+ ");";
public static void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE);
}
public static void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {
Log.w(InspectionsTable.class.getName(), "Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
database.execSQL("DROP TABLE IF EXISTS inspections");
onCreate(database);
}
这是DBhelper类
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);
}
}
这是适配器类
代码public class InspectionDBAdapter {
private static final String KEY_ROWID ="_id";
private static final String KEY_VEHICLE_ID="vehicle_id";
private static final String KEY_VEHICLE_TYPE="vehicle_type";
private static final String KEY_DATETIME="date_time";
private static final String KEY_DRIVER="driver";
private static final String KEY_CO_DRIVER="co_driver";
private static final String KEY_STATUS="status";
private static final String DB_TABLE="inspections";
private Context context;
private SQLiteDatabase db;
private SignalSetDBHelper dbHelper;
public InspectionDBAdapter(Context context) {
this.context = context;
}
public InspectionDBAdapter open() throws SQLException {
dbHelper = new SignalSetDBHelper(context);
db = dbHelper.getWritableDatabase();
return this;
}
public void close() {
dbHelper.close();
}
public void insertInspection(String vehicle_id, String vehicle_type,
int datetime, String driver, String codriver, int status)
{
ContentValues newContact= createContentValue(vehicle_id, vehicle_type,
datetime, driver, codriver, status);
db.insert(DB_TABLE, KEY_STATUS, newContact);
}
private static ContentValues createContentValue(String vehicle_id, String vehicle_type,
int datetime, String driver, String codriver, int status)
{
ContentValues newContact= new ContentValues();
newContact.put(KEY_VEHICLE_ID , vehicle_id);
newContact.put(KEY_VEHICLE_TYPE , vehicle_type);
newContact.put(KEY_DATETIME , datetime);
newContact.put(KEY_DRIVER , driver);
newContact.put(KEY_CO_DRIVER , codriver);
newContact.put(KEY_STATUS , status);
return newContact;
您可以在创建表格检查时分享代码吗? – 2012-02-28 03:21:44
我刚刚添加了创建表的代码。表名是检查,所以这就是为什么我感到困惑。类名是InspectionTable。我试过了,它不起作用 – Aaron 2012-02-28 03:27:24
你可以发布你创建table的类的完整代码吗?我想,你已经扩展了SQLiteOpenHelper类。 – Hiral 2012-02-28 04:42:08