我将数据发送到数据库时遇到问题。
错误:
E / SQLiteDatabase:插入linka = 14时出错jedu = false cas = 2018-05-03 17:33:05 id_veh = 1234 android.database.sqlite.SQLiteException:table m_register没有名为linka(code 1)的列:,编译时: INSERT INTO m_register(linka,jedu,cas,id_veh)VALUES(?,?,?,?)
这是我的类,其中addData被调用。 addData方法
引发了错误 package com.example.pc.mhdapp;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class DatabaseHelper extends SQLiteOpenHelper{
private static final String TAG = "DatabaseHelper";
private static final String TABLE_NAME = "m_register";
private static final String COL1 = "ID";
private static final String COL2 = "id_veh";
private static final String COL3 = "linka";
private static final String COL4 = "jedu";
private static final String COL5 = "cas";
public DatabaseHelper(Context context){
super(context, TABLE_NAME, null, 1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String createTable = "CREATE TABLE " + TABLE_NAME + " (ID INTEGER(11) PRIMARY KEY AUTOINCREMENT," +
COL2 + " VARCHAR(11)," +
COL3 + " VARCHAR(50)," +
COL4 + " VARCHAR(3)," +
COL5 + " DATETIME)";
db.execSQL(createTable);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}
public boolean addData(String id_vehl, String linkas, String jedus, String cass){
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL2, id_vehl);
contentValues.put(COL3, linkas);
contentValues.put(COL4, jedus);
contentValues.put(COL5, cass);
Log.d(TAG, "addDATA: adding " + id_vehl+ ", "+linkas+ ", "+jedus+ ", "+cass+ " to " + TABLE_NAME);
long result = db.insert(TABLE_NAME,null, contentValues);
if(result == -1){
return false;
}else{
return true;
}
}
}
答案 0 :(得分:0)
似乎您通过添加其他列来更改数据库架构,尝试卸载并重新安装应用程序,它将起作用。 提示:下次修改数据库模式时,请升级onUpgrade中的版本