关于安卓SQLite插入数的问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

关于安卓SQLite插入数的问题

a123456678 2016-07-19 14:42:38 1225

路过的大神,求帮忙解答下,小弟学习安卓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," +
    ");",
};

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

Android开发 计算机视觉 数据库管理
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:58:24

    你好,根据你的建表语句,你建成的表名是:[add](注意,不是add);
    列名也是[_id],而不是id;

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

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

    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程