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 アンドロイド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 に答える