Я получаю эту ошибку, когда пишу данные в тексте редактирования и нажимаю сохранить
2020-04-07 18:30:53.114 5580-5580/com.example.app100 E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
2020-04-07 18:30:53.115 5580-5580/com.example.app100 E/SpannableStringBuilder: SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length
2020-04-07 18:30:59.915 5580-5580/com.example.app100 E/SQLiteLog: (1) table SUBJECT_LIST has no column named MIN_TO
2020-04-07 18:30:59.916 5580-5580/com.example.app100 E/SQLiteDatabase: Error inserting MIN_TO=0 HRS_FROM=0 MIN_FROM=0 NAME=subject CREDITS=41 HRS_TO=0 from {P:5580;U:10348}
android.database.sqlite.SQLiteException: table SUBJECT_LIST has no column named MIN_TO (code 1 SQLITE_ERROR): , while compiling: INSERT INTO SUBJECT_LIST(MIN_TO,HRS_FROM,MIN_FROM,NAME,CREDITS,HRS_TO) VALUES (?,?,?,?,?,?)
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:986)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:593)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:590)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:61)
at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:33)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1637)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1494)
at com.example.app100.DatabaseHelper.addData(DatabaseHelper.java:59)
at com.example.app100.AddSubject.AddData(AddSubject.java:46)
at com.example.app100.AddSubject.access$000(AddSubject.java:12)
at com.example.app100.AddSubject$1.onClick(AddSubject.java:40)
at android.view.View.performClick(View.java:7201)
at android.view.View.performClickInternal(View.java:7170)
at android.view.View.access$3500(View.java:806)
at android.view.View$PerformClick.run(View.java:27562)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Класс DataHelper:
package com.example.app100;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.ContentView;
import androidx.annotation.Nullable;
public class DatabaseHelper extends SQLiteOpenHelper {
private static final String table_name = "SUBJECT_LIST";
private static final String COL1 = "ID";
private static final String COL2 = "NAME";
private static final String COL3 = "HRS_FROM";
private static final String COL4 = "MIN_FROM";
private static final String COL5 = "HRS_TO";
private static final String COL6 = "MIN_TO";
private static final String COL7 = "CREDITS";
public DatabaseHelper(@Nullable Context context) {
super(context, table_name, null, 3);
}
@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + table_name + "("+COL1+ " INTEGER PRIMARY KEY AUTOINCREMENT, " +
COL2 + "TEXT, " +
COL3 + "INTEGER, " +
COL4 + "INTEGER, " +
COL5 + "INTEGER, " +
COL6 + "INTEGER, " +
COL7 + "INTEGER);";
db.execSQL(CREATE_TABLE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + table_name);
onCreate(db);
}
public boolean addData(String name , int h1 , int m1 , int h2 , int m2, int credit ){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL2 , name);
contentValues.put(COL3 , h1);
contentValues.put(COL4 , m1);
contentValues.put(COL5 , h2);
contentValues.put(COL6 ,m2);
contentValues.put(COL7 , credit);
long result = db.insert(table_name , null , contentValues);
return result != -1;
}
public Cursor getdata(){
SQLiteDatabase db = this.getWritableDatabase();
String query = "SELECT * FROM " +table_name;
return db.rawQuery(query , null);
}
}
Когда я удаляю упомянутый столбец в ошибке из моего база данных Я получаю сообщение об ошибке: отсутствует другой столбец.
Я попытался изменить версию базы данных и переустановить приложение, но это не сработало. После нескольких попыток приложение вылетает.
Пожалуйста, помогите