添加新行sqlite

时间:2017-08-06 19:21:53

标签: android sqlite

我正在尝试创建包含3条信息的数据库 -名称 -钱 -评论 所以我在databasehelper

中创建了这个方法
     public boolean insertDataToHeader(String name,String money,String comment){

     SQLiteDatabase db = this.getWritableDatabase();
     ContentValues contentValues = new ContentValues();
     contentValues.put(COL_H0,name);
     contentValues.put(COL_H1,money);
     contentValues.put(COL_H2,comment);

    long result = db.insert(HEADERS, null, contentValues);

    if (result == -1)
        return false;
    else
        return true;
 }

和活动中的调用方法

    public void addHeaderToDatabase(){
    addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            moneyS=money.getText().toString();
             isInserted=MainActivity.moneyDB.insertDataToHeader(title.getText().toString(),moneyS,comment.getText().toString());
            backToMain(isInserted);

        }
    });

}

当我添加两行-name -money时,例如,它的工作正常,但是当我添加第三行时,它没有,并且该方法返回false,这意味着尚未添加数据。 这让我想一想,sqlit数据库中的行数是否有限? ** 注意** 调用是在AddActivity中而不是在mainActivity中,如果已插入数据,方法backToMain(isInserted); 将返回mainActivity

1 个答案:

答案 0 :(得分:0)

注释字符串可能为null,列设置为NOT NULL,因此插入失败。解决方法是在传递给函数insertDataToHeader之前检查null。

public void onClick(View v) {
        moneyS=money.getText().toString();
        String commentS;

             if ((comment.getText().toString()==null)){
                 commentS=" ";
             else {
                 commentS=comment.getText().toString();      
             }

             isInserted=MainActivity.moneyDB.insertDataToHeader(title.getText().toString(),moneyS, commentS);
            backToMain(isInserted);

        }
相关问题