我創建了數據庫並運行它。然後我添加了幾行。一切都按照它應該運行。然後我想跟蹤最後一個日期在表格中完成的時間。因此,我在同一個數據庫名稱中再添加一個表格,並嘗試保存當前日期,但是當我運行它時,表格無法找到。 我走到這一步:在MYSQLiteHelper類Android中的多個表格無效
//impotrs...
public class MYSQLiteHelper extends SQLiteOpenHelper {
// TABLE EMPLOYEES
public static final String TABLE_NAME = "employee";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_NAME = "name";
public static final String COLUMN_EMAIL = "email";
public static final String COLUMN_TIME = "saved_date";
//TABLE DATE
public static final String COLUMN_TIME_ID = "date_id";
public static final String TABLE_TIME_NAME = "date";
//DATABASE COMMENTS.DB
private static final String DATABASE_NAME = "commments.db";
private static final int DATABASE_VERSION = 1;
// Database creation sql statement for employee
private static final String DATABASE_CREATE = "create table "
+ TABLE_NAME + "(" + COLUMN_ID + " integer primary key autoincrement, " + COLUMN_NAME + " text not null, " + COLUMN_EMAIL + " text)";
// Database creation sql statement for date
private static final String DATABASE_CREATE_TIME = "create table "
+ TABLE_TIME_NAME + "(" + COLUMN_TIME_ID + " integer primary key autoincrement, " + COLUMN_TIME + " text)";
public MYSQLiteHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase database) {
database.execSQL(DATABASE_CREATE_TIME);
database.execSQL(DATABASE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(MYSQLiteHelper.class.getName(),"Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_TIME_NAME);
Log.w(MYSQLiteHelper.class.getName(),"Upgrading database from version " + oldVersion + " to " + newVersion + ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
}
名爲僱員表perfecly運行。我可以添加新員工或選擇任何查詢。但是,當我嘗試插入當前日期到表名稱日期它有運行時錯誤「android.database.qslte.SQLiteException:沒有這樣的表(代碼1);;編譯SETECT date_id時,seved_date從日期。 我有什麼。其他類主要是我做了什麼,我也做了employye相同:在主要活動按鈕 :
在EmployeeDataSource類EmployeeDataSource dataSource = new EmployeeDataSource(this);
// other codes....
public void getCurrentDate(View v){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String formatDate = sdf.format(new Date());
txtTop.setText(formatDate);
dataSource.addDate(formatDate);
}
:
private String[] timeColumn = {MYSQLiteHelper.COLUMN_TIME_ID ,MYSQLiteHelper.COLUMN_TIME};
public long addDate(String date){
ContentValues values = new ContentValues();
values.put(MYSQLiteHelper.COLUMN_TIME, date);
return database.insert(MYSQLiteHelper.TABLE_TIME_NAME, null, values);
}
public String getStoredDate(){
ArrayList<String> array = new ArrayList<String>();
Cursor crs = database.query(MYSQLiteHelper.TABLE_TIME_NAME, timeColumn, null, null, null, null, null);
crs.moveToFirst();
while (!crs.isAfterLast()){
array.add(crs.getString(1));
crs.moveToNext();
}
String strData = array.get(array.size() - 1);
return strData;
}
在我看來,我ommit或有什麼錯在MYSQLiteHelper中,當我讀到onCreate()方法僅在數據庫文件不存在但是我的da tabase文件已經存在。請問有人可以幫忙。謝謝。
沒有這樣的表錯誤。檢查查詢是否正確。如果您在設備中運行應用程序後添加了此表,請嘗試卸載並重新安裝 –