I want to use SQLite and i have written the Database class and trying to insert the values in the database table but i am getting an Exception which is :
I/Database(958): sqlite returned: error code = 1, msg = no such table: Exercise
and when i fixed the log it points to this statement :
long d= dbAdapter.SaveExecise(date, exercise_Time, ex_Name, minutes, burned_cals);
why this exception is raised ? i have read and tried solutions of such problems but the error still how i can solve it ? this is my code:
public class DBAdapter {
private static final String DB_NAME = "MYDB";
private static final int DB_VERSION = 1;
private static final String EXERCISE_TABLE_NAME = "Exercise";
private static final String TAG = "DBAdapter";
private DatabaseHelper DBHelper;
private SQLiteDatabase db;
private Context context;
// table Exercise columns name
public static final String KEY_DATE = "Date";
public static final String KEY_TIME = "Time";
public static final String KEY_NAME = "Name";
public static final String KEY_PERIOD = "Period";
public static final String KEY_BURNEDCALS = "Burned_Calories";
private static final String EXERCISE_TABLE_CREATE =
"create tables Exercise (Date text not null , "
+ "Time text not null ,Name text not null,"
+ "Period REAL not null, Burned_Calories REAL not null,"
+ " primary key(Date,Time ) );";
public DBAdapter(Context ctxt) {
this.context = ctxt;
DBHelper = new DatabaseHelper(context);
}
private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
public void onCreate(SQLiteDatabase db) {
try {
db.execSQL(EXERCISE_TABLE_CREATE);
} catch (SQLException e) {
e.printStackTrace();
}
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.w(TAG, "Upgrading database from version"
+ oldVersion + " to " + newVersion
+ ", which will destroy all old data");
db.execSQL("DROP TABLE IF EXISTS Exercise");
onCreate(db);
}
public DBAdapter open() throws SQLException {
db = DBHelper.getWritableDatabase();
return this;
}
// ---closes the database---
public void close() {
DBHelper.close();
}
// ---insert Exercise info to the Exercise table---
public long SaveExecise(String date, String time, String name, float period,
float BurnedCalories) {
ContentValues content = new ContentValues();
content.put(KEY_DATE, date);
content.put(KEY_TIME, time);
content.put(KEY_NAME, name);
content.put(KEY_PERIOD, period);
content.put(KEY_BURNEDCALS, BurnedCalories);
return db.insert(EXERCISE_TABLE_NAME, null, content);
}
}
}
and here where i insert the exercise information in the Exercise table:
save_exercise_btn = (Button) findViewById(R.id.save_exercise_Btn);
save_exercise_btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showSavingDialog();
// save the name,ime,burnedcals of the exercise in the DB
int year, month, day;
year = localCalendar.get(1);
month = localCalendar.get(2) + 1;
day = localCalendar.get(5);
String date = year + "/" + month + "/" + day;
DBAdapter dbAdapter = new DBAdapter(SelectedExerciseInfo.this);
dbAdapter = dbAdapter.open();
long d = dbAdapter.SaveExecise(date, exercise_Time, ex_Name, minutes, burned_cals);
dbAdapter.close();
hideSavingDialog();
}
});