我有一个简单的插入SQLite语句:
private final String INSERT_FEED = "insert into "
+ TABLE_FEEDS
+ "([id],[first_name], [last_name], [image], [content]) "
+ "values (?,?,?,?,?)";
我在方法中使用的是:
public long insertFeed(FeedsModel feed) {
this.insertStmt = db.compileStatement(INSERT_FEED);
this.insertStmt.bindString(1, feed.getId() + "");
this.insertStmt.bindString(2, feed.getFirstName());
this.insertStmt.bindString(3, feed.getLastName());
this.insertStmt.bindString(4, feed.getProfileImage());
this.insertStmt.bindString(5, feed.getContentDetails());
long result = this.insertStmt.executeInsert();
return result;
}
后来,我在我的活动中使用了这个方法:
for(int i = 0; i < feedsAdapter.getCount() - 1; i++)
{
helper.insertFeed(feedsAdapter.getItem(i));
}
问题是,该表始终只有1行,因为新数据将覆盖现有行,而不是插入新行。
答案 0 :(得分:0)
您当前的for循环是插入除最后一个之外的所有FeedsModel。如果列表中只有一个模型,它将解释为什么您没有在表中看到任何新插入,而是:
for (FeedsModel feedsModel : feedsAdapter) {
helper.insertFeed(feedsModel);
}