2 cairunbo cairunbo 于 2016.04.25 09:24 提问

关于安卓SQLite插入数的问题

路过的大神,求帮忙解答下,小弟学习安卓SQLite时,遇到了如下错误
图片说明

然后这是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," +
        ");",
    };

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

4个回答

erichk2008
erichk2008   2016.04.25 16:48
已采纳

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

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

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

cairunbo
cairunbo 嗯嗯,谢谢了,已经解决了!!多谢多谢
一年多之前 回复
danielinbiti
danielinbiti   Ds   Rxr 2016.04.25 10:01
 insert into add(
 改成
 insert into [add](
cairunbo
cairunbo 多谢帮助!
一年多之前 回复
danielinbiti
danielinbiti 回复cairunbo: 看日志 addDao第16行
一年多之前 回复
cairunbo
cairunbo 你好,我没找到这句话啊?
一年多之前 回复
dongfeng9ge
dongfeng9ge   Ds   Rxr 2016.04.29 15:35

你可以试试GreenDao

qq_27578023
qq_27578023   2016.05.30 21:01

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

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

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!