我正在尝试创建包含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
答案 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);
}