【发布时间】:2020-06-03 03:05:03
【问题描述】:
我有这样的问题:
/SQLiteLog: (1) 表 ds_sinhvien 没有名为 id 的列
E/SQLiteDatabase:插入名称时出错=An id=1 class=MMTT2011
android.database.sqlite.SQLiteException: 表 ds_sinhvien 没有 名为 id 的列(代码 1 SQLITE_ERROR):,编译时:INSERT INTO ds_sinhvien(name,id,class) VALUES (?,?,?)
我不知道如何解决这个问题,这是我的 dbhelper:
public class StudentDbHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "dbStudent";
private static final String TB_STUDENT = "ds_sinhvien";
private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_CLASS = "class";
public StudentDbHelper(Context context)
{
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db)
{
// TODO Auto-generated method stub
// tạo table
String SQL_String = String.format("CREATE TABLE %s(%sINTEGER PRIMARY KEY, %s TEXT, %s TEXT)", TB_STUDENT,KEY_ID, KEY_NAME, KEY_CLASS);
db.execSQL(SQL_String);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
{
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + TB_STUDENT);
// Create tables again
onCreate(db);
}
public void insertStudent(Student student)
{
SQLiteDatabase db = this.getWritableDatabase();
String nullColumnHack = null; // Allow null value
ContentValues values = new ContentValues();
if (student.getId() != -1)
{
values.put(KEY_ID, student.getId());
values.put(KEY_NAME, student.getName());
values.put(KEY_CLASS, student.getClassName());
db.insert(TB_STUDENT, null, values);
}
db.close();
}
感谢您的帮助,我已经尝试修复它很长时间了。
【问题讨论】: