当前位置: 首页 > 知识库问答 >
问题:

无法在SQLite Android中创建列

李成礼
2023-03-14

我有这样一个问题:

/SQLITELOG:(1)表ds_sinhvien没有名为id的列

我不知道如何修复这个,这是我的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();
    }

谢谢你帮我,我已经修了很长时间了。

共有1个答案

花健
2023-03-14
%sINTEGER

这使得列名为idinteger。添加名称和类型之间缺少的空格。然后,您可以卸载应用程序以删除具有该不正确列名的旧数据库,并使oncreate()再次执行

 类似资料:
  • 我试着使用设置并查看了所有选项,但“OK”按钮无法让我完成这个过程。知道吗? 更新:确定按钮现在启用,但填写完所有内容后,我按下确定,我在控制台收到一个不同的错误: [2013-07-22 11:04:45-SDK Manager]错误:null] 访问问题:Android SDK AVD错误:null

  • 循环在具有特定键值对的文本文件上运行三次。每个循环都会返回一个新的散列,如下所示。我想将这些散列存储到另一个散列中。,和是散列的关键: 我将上述散列初始化为而不是我想将它们存储到散列中。我想初始化更大的散列,比如。 但它只给了我

  • 我是全新的MongoDB,所以很抱歉,如果这个问题是基本的。 我试图获得一个使用Java basic对象(POJO)的基本CRUD,但这段代码失败了。(正确的方法是什么?我认为可能接近这个): 这是我得到的信息:

  • 错误: 2月19日-2016 00:00:16.731SEVERE[localhost]org.apache.catalina.core.Applicationontext.logStandard ardWrapper。可投掷org.springframework.beans.factory.BeanCreationException:创建名称为“人员服务”的bean时出错:自动加载依赖项注入失败

  • 问题内容: 我正在研究一个稀疏矩阵类,该类需要使用数组来存储矩阵的值。数组的每个元素(即每个)代表矩阵的一行。并且,数组中的每个元素代表一列和存储的值。 在我的课程中,我将数组声明为: 并且,在的构造函数中SparseMatrix,我尝试定义: 我最终得到的错误是 无法创建的通用数组 因此,我有两个问题: 我做错了什么 如果无法创建数组,为什么在数组的声明中可以接受该类型? 是我创建的课程。而且,

  • 问题内容: 我正在尝试在Swift 3中建立一个我已经在Swift 2中拥有的范围,但是它一直给我这个错误: 这是我的代码: expiredRange是一个 在Swift 2中,我有: 问题答案: 在Swift 3中,“集合移动其索引”,请参阅 关于Swift进化的集合和索引的新模型。 这是字符串范围和索引的示例: 的 在字符串上调用方法,以从范围(现在具有属性而不是 )中计算新索引。