我根据数据库中的信息创建了一些对象。我的表如下所示:
tbl_Book
+-----+-------+---------+-------+------+
| _id | Title | Author | Pages | ISBN |
+-----+-------+---------+-------+------+
| 1 | Test1 | Author1 | 111 | 1234 |
| 2 | Test2 | Author2 | 222 | 2345 |
| 3 | Test3 | Author | 333 | 3456 |
+-----+-------+---------+-------+------+
我创建的对象只需要来自id、title 和 ISBN的信息,所以我只从数据库中选择这些值来创建我的对象。现在我只想更新数据库中的ISBN,所以我的对象中有一个方法,代码如下:
Book b = new Book(id, title, isbn);
b.setISBN(value);
// Code from setISBN
public void setISBN(int isbn)
{
this.isbn= isbn;
// DB updaten
ContentValues cv = new ContentValues();
cv.put("_id", getId());
cv.put("ISBN", isbn);
db.replace("tbl_Book", null, cv);
}
但是使用这种方法会导致SQLiteConstraintException
因为作者、标题和页面为空。如果我只有数据集中的一些信息,如何更新表中的行?不应触及数据集中的所有其他项目。