开发者社区> 问答> 正文

有关安卓SQLite插入数的问题

路过的大神,求帮忙解答下,小弟学习安卓SQLite时,遇到了如下错误
screenshot
然后这是RecordActivity里面的

 //进行数据的添加
public void add(View v) {
 ContentValues cv = new ContentValues();
 cv.put(ActionConstants.add.TIME, et01.getText().toString());
 cv.put(ActionConstants.add.SportType, tv03.getText().toString());
 cv.put(ActionConstants.add.FitnessPart, tv05.getText().toString());
 cv.put(ActionConstants.add.FitnessContent, tv07.getText().toString());
 cv.put(ActionConstants.add.DATE, tv09.getText().toString());
 cv.put(ActionConstants.add.StrengthLevel, tv11.getText().toString());
 cv.put(ActionConstants.add.ProjectNumber, tv13.getText().toString());
 cv.put(ActionConstants.add.Consume, et02.getText().toString());
 adao.insert(cv);//添加结果至项目
Toast.makeText(this, "记录成功!!!", Toast.LENGTH_SHORT).show();
 finish();
}
//这是AddDAO接口里面的:
public void insert(ContentValues cv){
    db.insert(ActionConstants.add.TABLE_NAME, null, cv);
}

//我在ActionDataConstants里面新建了表格
public static final String[] CREATE_TABLES ={

        "CREATE TABLE [add] " +
        "(" + 
        "[_id] INTEGER PRIMARY KEY AUTOINCREMENT,  " + 
        "[time] double,"+ 
        "[sporttype] varchar(50)," + 
        "[fitnesspart] varchar(50)," + 
        "[fitnesscontent] varchar(50)," + 
        "[date] varchar(50)," + 
        "[strengthlevel] varchar(50)," + 
        "[projectnumber] varchar(50)," + 
        "[consume] double," +
        ");",
    };

展开
收起
爵霸 2016-03-03 14:28:55 2051 0
1 条回答
写回答
取消 提交回答
  • 你好,根据你的建表语句,你建成的表名是:[add](注意,不是add);
    列名也是[_id],而不是id;

    从你的代码上看,你应该是把表名,列名等用Final String 来写了, 比如ActionConstants.add.TABLE_NAME是表名,ActionConstants.add.TIME是time的列名,请看一下,你的这些Final String的表名和列名,是不是都没有加左右的[]?

    我感觉问题应该是出在这里了,你的表名是[add],但是你的命令引用的TABLE_NAME是add,所以报错,修改了这个,后面的列名如果也是这个错误,还会持续报错。

    2019-07-17 18:51:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载