0

我知道如何读取写入数据到 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);

如果您能帮助我并指出正确的方向,那就太好了。

4

2 回答 2

1

我相信你正在寻找的是insert android SQLiteDatabase

insert (String table, String nullColumnHack, ContentValues values)
于 2012-05-09T13:05:03.363 回答
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);

但就我个人而言,这是一个丑陋的解决方案,我内心的数据库架构师会强烈反对你实施它。

于 2012-05-09T13:49:53.490 回答