我知道如何读取写入数据到android SQL数据库,但是当我尝试追加数据时,我遇到了一个问题。当我这样做时,它只附加最后一条记录。
对于数据更新我正在使用`
ContentValues updateKoment = new ContentValues();
updateKoment.put("comment", text.getText().toString());
db.update("MyTab",updateKoment, "PhoneNr='"+newn+"'AND Name='"+contact+"'AND comment='"+previuscom+"' AND Answered='"+Yn+"'",null);
如果你能帮助我并指出我正确的方向,那就太好了。
答案 0 :(得分:1)
我相信你要找的是insert
android SQLiteDatabase
insert (String table, String nullColumnHack, ContentValues values)
答案 1 :(得分:0)
也许您正在尝试在任何现有评论的末尾添加新评论?如果是这种情况,您可能应该重新设计数据库,将任何新注释添加到单独的表中(即insert
)。然后,使用公用密钥(以下示例中的post_id
列)将所有评论链接到您想要的任何其他项目。
例如,您可以在数据库中设置此表:
Table Posts:
post_id title description
1 'Hey' 'Description'
2 'Ho' 'Another Description'
Table Comments:
comment_id post_id comment
1 1 'Nice Salute'
2 1 'Yeah really nice'
3 2 'Ho Ho Ho'
从您当前的代码段开始,最后一条评论将始终替换任何现有评论,即添加'Yeah really nice'
评论将替换'Nice salute'
评论。
(我不相信我在暗示我要建议的内容:)。
您还可以从数据库中读取任何现有注释,并将新注释连接到结果:
String columns = { "comment" };
String constraint = "PhoneNr=? AND Name=? AND comment=? AND Answered=?";
String args[] = { newn, contact, previuscom, Yn };
Cursor cursor = db.query("MyTab", columns , constraint, args, null, null, null);
String comments = cursor.getString(cursor.getColumnIndex("comment"));
comments += text.getText().toString();
然后使用新的评论字符串更新同一行:
ContentValues updateKoment = new ContentValues();
updateKoment.put("comment", comments);
db.update("MyTab", updateKoment, constraint, args);
但是我个人认为这是一个非常丑陋的解决方案,我内部的数据库架构师会强烈反对你实施它。