开发者社区> 问答> 正文

关于安卓SQLite插入数的问题

路过的大神,求帮忙解答下,小弟学习安卓SQLite时,遇到了如下错误
screenshot
//进行数据的添加
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," +
    ");",
};

但是为啥没办法添加数据?求大神帮忙解答下,谢谢

展开
收起
a123456678 2016-07-19 14:42:38 2936 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 19:58:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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