Ошибка no such table: complete (code 1 SQLITE_ERROR): , while compiling: select * from complete
Приложение падает при запуске, выдаёт ошибку no such table: complete (code 1 SQLITE_ERROR): , while compiling: select * from complete. Эта проблема появилась у меня, только после того, как я создал вторую таблицу в базе данных. Когда таблица была одна, ошибки не было.
DBHelper.java:
public class DBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
public static final String DATABESE_NAME = "tasks";
public static final String TABLE_HOME = "home";
public static final String TABLE_COMPLETE = "complete";
public static final String TABLE_FAILD = "faild";
public static final String TABLE_PLANNED = "planned";
public static final String COLUMN_ID = "_id";
public static final String COLUMN_TASK = "task";
public static final String COLUMN_COMMENT = "comment";
public static final String COLUMN_TIME = "time";
public DBHelper(Context context) {
super(context, DATABESE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table " + TABLE_HOME + "(" + COLUMN_ID + " integer primary key," +
COLUMN_TASK + " text," + COLUMN_COMMENT + " text," + COLUMN_TIME + " text" + ")");
db.execSQL("create table " + TABLE_COMPLETE + "(" + COLUMN_ID + " integer primary key," +
COLUMN_TASK + " text," + COLUMN_COMMENT + " text," + COLUMN_TIME + " text" + ")");
db.execSQL("create table " + TABLE_FAILD + "(" + COLUMN_ID + " integer primary key," +
COLUMN_TASK + " text," + COLUMN_COMMENT + " text," + COLUMN_TIME + " text" + ")");
db.execSQL("create table " + TABLE_PLANNED + "(" + COLUMN_ID + " integer primary key," +
COLUMN_TASK + " text," + COLUMN_COMMENT + " text," + COLUMN_TIME + " text" + ")");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public ArrayList<Items> elementsHome(){
String sql = "select * from " + TABLE_HOME;
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<Items> tempElements = new ArrayList<>();
Cursor cursor = db.rawQuery(sql, null);
if(cursor.moveToFirst()){
do{
int id = Integer.parseInt(cursor.getString(0));
String task = cursor.getString(1);
String comment = cursor.getString(2);
String time = cursor.getString(3);
tempElements.add(new Items(id, task, comment, time, null));
}while (cursor.moveToNext());
}
cursor.close();
return tempElements;
}
public ArrayList<Items> elementsComplete(){
String sql = "select * from " + TABLE_COMPLETE;
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<Items> tempElements = new ArrayList<>();
Cursor cursor = db.rawQuery(sql, null);
if(cursor.moveToFirst()){
do{
int id = Integer.parseInt(cursor.getString(0));
String task = cursor.getString(1);
String comment = cursor.getString(2);
String time = cursor.getString(3);
tempElements.add(new Items(id, task, comment, time, null));
}while (cursor.moveToNext());
}
cursor.close();
return tempElements;
}
public ArrayList<Items> elementsFaild(){
String sql = "select * from " + TABLE_FAILD;
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<Items> tempElements = new ArrayList<>();
Cursor cursor = db.rawQuery(sql, null);
if(cursor.moveToFirst()){
do{
int id = Integer.parseInt(cursor.getString(0));
String task = cursor.getString(1);
String comment = cursor.getString(2);
String time = cursor.getString(3);
tempElements.add(new Items(id, task, comment, time, null));
}while (cursor.moveToNext());
}
cursor.close();
return tempElements;
}
public ArrayList<Items> elementsPlanned(){
String sql = "select * from " + TABLE_PLANNED;
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<Items> tempElements = new ArrayList<>();
Cursor cursor = db.rawQuery(sql, null);
if(cursor.moveToFirst()){
do{
int id = Integer.parseInt(cursor.getString(0));
String task = cursor.getString(1);
String comment = cursor.getString(2);
String time = cursor.getString(3);
tempElements.add(new Items(id, task, comment, time, null));
}while (cursor.moveToNext());
}
cursor.close();
return tempElements;
}
public void addTableHome(@NonNull Items item){
ContentValues values = new ContentValues();
values.put(COLUMN_ID, item.getId());
values.put(COLUMN_TASK, item.getTask());
values.put(COLUMN_COMMENT, item.getComment());
values.put(COLUMN_TIME, item.getDate());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE_HOME, null, values);
}
public void addTableComplete(@NonNull Items item){
ContentValues values = new ContentValues();
values.put(COLUMN_ID, item.getId());
values.put(COLUMN_TASK, item.getTask());
values.put(COLUMN_COMMENT, item.getComment());
values.put(COLUMN_TIME, item.getDate());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE_COMPLETE, null, values);
}
public void addTableFaild(@NonNull Items item){
ContentValues values = new ContentValues();
values.put(COLUMN_ID, item.getId());
values.put(COLUMN_TASK, item.getTask());
values.put(COLUMN_COMMENT, item.getComment());
values.put(COLUMN_TIME, item.getDate());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE_FAILD, null, values);
}
public void addTablePlanned(@NonNull Items item){
ContentValues values = new ContentValues();
values.put(COLUMN_ID, item.getId());
values.put(COLUMN_TASK, item.getTask());
values.put(COLUMN_COMMENT, item.getComment());
values.put(COLUMN_TIME, item.getDate());
SQLiteDatabase db = this.getWritableDatabase();
db.insert(TABLE_PLANNED, null, values);
}
public void deleteHomeTask(int id){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_HOME, COLUMN_ID + " = ?", new String[] { String.valueOf(id)});
}
public void deleteCompleteTask(int id){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_COMPLETE, COLUMN_ID + " = ?", new String[] { String.valueOf(id)});
}
public void deleteFaildTask(int id){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_FAILD, COLUMN_ID + " = ?", new String[] { String.valueOf(id)});
}
public void deletePlannedTask(int id){
SQLiteDatabase db = this.getWritableDatabase();
db.delete(TABLE_PLANNED, COLUMN_ID + " = ?", new String[] { String.valueOf(id)});
}
}
FragmentComplete.java:
public class FragmentComplete extends Fragment {
private DBHelper dbHelper;
private ArrayList<Items> elements;
private RecyclerView recyclerView;
public FragmentComplete() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_complete, container, false);
recyclerView = view.findViewById(R.id.recyclerView);
LinearLayoutManager layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
return view;
}
@Override
public void onStart() {
super.onStart();
dbHelper = new DBHelper(getContext());
elements = dbHelper.elementsComplete();
recyclerView.setAdapter(new TaskAdapter(elements, "complete"));
}
}