Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java E/SQLiteLog:(1)表Estudiantes在android中没有名为calificacion的列_Java_Android_Sqlite - Fatal编程技术网

Java E/SQLiteLog:(1)表Estudiantes在android中没有名为calificacion的列

Java E/SQLiteLog:(1)表Estudiantes在android中没有名为calificacion的列,java,android,sqlite,Java,Android,Sqlite,这是我正在使用的类 public class DBHelper extends SQLiteOpenHelper { private static final String DB_FILE = "Database.db"; private static final String TABLE = "Estudiantes"; private static final String FIELD_ID = "id"; private static final Stri

这是我正在使用的类

public class DBHelper extends SQLiteOpenHelper {

    private static final String DB_FILE = "Database.db";
    private static final String TABLE = "Estudiantes";
    private static final String FIELD_ID = "id";
    private static final String FIELD_NAME = "nombre";
    private static final String FIELD_GRADE = "calificacion";

    public DBHelper(Context context){
        super(context, DB_FILE, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String query = "CREATE TABLE " + TABLE + "(" +
                FIELD_ID + " INTEGER PRIMARY KEY, " +
                FIELD_NAME + " TEXT, " +
                FIELD_GRADE + " INTEGER);";
        db.execSQL(query);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String query = "DROP TABLE IF EXISTS ?";
        String[] params = {TABLE};
        db.execSQL(query, params);
    }

    public void save(String nombre, int calificacion){
        SQLiteDatabase db = getWritableDatabase();
        ContentValues valores = new ContentValues();

        valores.put(FIELD_NAME, nombre);
        valores.put(FIELD_GRADE, calificacion);

        db.insert(TABLE, null, valores);
    }

    public int delete(String nombre){
        SQLiteDatabase db = getWritableDatabase();
        String clause = FIELD_NAME + " = ?";
        String[] args = {nombre};
        return db.delete(TABLE, clause, args);
    }

    public int find(String nombre){
        SQLiteDatabase db = getReadableDatabase();
        String filtrito = FIELD_NAME + " = ?";
        String[] args = {nombre};

        Cursor c = db.query(TABLE, null, filtrito, args, null, null, null);
        int result = -1;

        if(c.moveToFirst()) {
            result = c.getInt(2);
        }

        return result;
    }
}

这是我收到的错误消息:

E/SQLiteLog: (1) table Estudiantes has no column named calificacion
E/SQLiteDatabase: Error inserting calificacion=80 nombre=Fer
android.database.sqlite.SQLiteException: 
table Estudiantes has no column named calificacion (code 1): , while compiling: 
INSERT INTO Estudiantes(calificacion,nombre) VALUES (?,?)

看起来您稍后在数据库中添加了calificacion列。 我将执行以下操作之一:

  • 卸载并重新安装你的应用程序
  • 最好、更好的方法是
    onUpdate
    方法中删除
    重新创建
    Estudiantes表,并在更改模式时增加db版本