【问题标题】:Can't create column in SQLite Android无法在 SQLite Android 中创建列
【发布时间】: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();
    }

感谢您的帮助,我已经尝试修复它很长时间了。

【问题讨论】:

    标签: java android


    【解决方案1】:
    %sINTEGER
    

    这使列名称为idINTEGER。在名称和类型之间添加缺少的空格。然后,您可以卸载您的应用程序以删除具有此错误列名的旧数据库并再次执行 onCreate()

    【讨论】:

      猜你喜欢
      • 2015-03-24
      • 2012-03-26
      • 1970-01-01
      • 2018-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-01
      相关资源
      最近更新 更多