no such column: task_date (code 1): , while compiling: SELECT * FROM tasks_table WHERE task_status = ? OR task_status = ? ORDER BY task_date checked the code many time and couldn't find the error!!
DBHelper
public class DBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABASE_NAME = "reminder_database";
public static final String TASKS_TABLE = "tasks_table";
public static final String TASK_TITLE_COLUMN = "task_title";
public static final String TASK_DATE_COLUMN = "task_date";
public static final String TASK_PRIORITY_COLUMN = "task_priority";
public static final String TASK_STATUS_COLUMN = "task_status";
public static final String TASK_TIME_STAMP_COLUMN = "task_time_stamp";
private static final String TASKS_TABLE_CREATE_SCRIPT = "CREATE TABLE "
+ TASKS_TABLE + " (" + BaseColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ TASK_TITLE_COLUMN + " TEXT NOT NULL, "
+ TASK_DATE_COLUMN + " LONG, " + TASK_PRIORITY_COLUMN + " INTEGER, "
+ TASK_STATUS_COLUMN + " INTEGER, " + TASK_TIME_STAMP_COLUMN + " LONG);";
public static final String SELECTION_STATUS = DBHelper.TASK_STATUS_COLUMN + " = ?";
public static final String SELECTION_TIME_STAMP = TASK_TIME_STAMP_COLUMN + " = ?";
private DBQueryManager dbQueryManager;
private DBUpdateManager dbUpdateManager;
public DBHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
dbQueryManager = new DBQueryManager(getReadableDatabase());
dbUpdateManager = new DBUpdateManager(getWritableDatabase());
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TASKS_TABLE_CREATE_SCRIPT);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE " + TASKS_TABLE);
onCreate(db);
}
public void saveTask(ModelTask task){
ContentValues newValues = new ContentValues();
newValues.put(TASK_TITLE_COLUMN,task.getTitle());
newValues.put(TASK_DATE_COLUMN,task.getDate());
newValues.put(TASK_STATUS_COLUMN,task.getStatus());
newValues.put(TASK_PRIORITY_COLUMN,task.getPriority());
newValues.put(TASK_TIME_STAMP_COLUMN, task.getTimeStamp());
getWritableDatabase().insert(TASKS_TABLE, null, newValues);
}
public DBUpdateManager update() {
return dbUpdateManager;
}
public DBQueryManager query() {
return dbQueryManager;
}
public void removeTask(long timeStamp){
getWritableDatabase().delete(TASKS_TABLE,SELECTION_TIME_STAMP,new String[]{Long.toString(timeStamp)});
}
}
DBQueryManager
public class DBQueryManager {
private SQLiteDatabase sqLiteDatabase;
public DBQueryManager(SQLiteDatabase sqLiteDatabase) {
this.sqLiteDatabase = sqLiteDatabase;
}
public ModelTask getTask(long timeStamp){
ModelTask modelTask = null;
Cursor c = sqLiteDatabase.query(DBHelper.TASKS_TABLE,null,DBHelper.SELECTION_TIME_STAMP,
new String[]{Long.toString(timeStamp)},null,null,null);
if (c.moveToFirst()){
String title = c.getString(c.getColumnIndex(DBHelper.TASK_TITLE_COLUMN));
long date = c.getLong(c.getColumnIndex(DBHelper.TASK_DATE_COLUMN));
int priority = c.getInt(c.getColumnIndex(DBHelper.TASK_PRIORITY_COLUMN));
int status = c.getInt(c.getColumnIndex(DBHelper.TASK_STATUS_COLUMN));
modelTask = new ModelTask(title,date,priority,status,timeStamp);
}
c.close();
return modelTask;
}
public List<ModelTask> getTask(String selection , String[] selectionArgs,String orderBy){
List<ModelTask> tasks = new ArrayList<>();
Cursor c = sqLiteDatabase.query(DBHelper.TASKS_TABLE, null,selection,selectionArgs,null,null,orderBy);
if (c.moveToFirst()){
do {
String title = c.getString(c.getColumnIndex(DBHelper.TASK_TITLE_COLUMN));
long date = c.getLong(c.getColumnIndex(DBHelper.TASK_DATE_COLUMN));
int priority = c.getInt(c.getColumnIndex(DBHelper.TASK_PRIORITY_COLUMN));
int status = c.getInt(c.getColumnIndex(DBHelper.TASK_STATUS_COLUMN));
long timeStamp = c.getInt(c.getColumnIndex(DBHelper.TASK_TIME_STAMP_COLUMN));
ModelTask modelTask = new ModelTask(title,date,priority,status,timeStamp);
tasks.add(modelTask);
}while (c.moveToNext());
}
c.close();
return tasks;
}
}