2

データベースがあり、すべてのアイテムを照会しています。

アイテムのリストは次のとおりです。

Type- Coffee: Name- Cafe Latte
Type- Coffee: Name- Flavoured Latte
Type- Coffee: Name- Mocha
Type- Coffee: Name- Americano
Type- Coffee: Name- Short Black
Type- Coffee: Name- Flat White
Type- Coffee: Name- Espresso
Type- Coffee: Name- Espresso Con Panna
Type- Coffee: Name- Espresso Machiato
Type- Coffee: Name- Espresso Affogato
Type- Coffee: Name- Pot Of Coffee

そして、私がこの関数を呼び出すとき:

public int EditItem(MenuItem menuItem){
      ContentValues itemNewValues = new ContentValues();
      //itemNewValues.put(ITEM_TYPE,menuItem.getType());
      itemNewValues.put(ITEM_NAME,menuItem.getName());
      itemNewValues.put(ITEM_REGPRICE,menuItem.getRegPrice());
      itemNewValues.put(ITEM_LARGEPRICE,menuItem.getLargePrice());
      String[] args = new String[1];
      args[0]= menuItem.getName();
      return db.update(DATABASE_TABLE, itemNewValues,ITEM_NAME+"=?", args);
}

Log.i("TAG","updating (no of entries edited: " +localDBHandler.EditItem(new MenuItem("Coffee", "Flavoured Latte", "9.90","2.45")));

「編集されたエントリの数: 2」を返します

しかし、テーブルをもう一度印刷すると、まったく同じです。

ああ、私のテーブル作成ステートメントは次のとおりです。

// SQL Statement to create a new database.
  private static final String DATABASE_CREATE = "create table " + 
    DATABASE_TABLE + " (" + 
    ITEM_TYPE + " text not null, " +
    ITEM_NAME + " text not null, " +
    ITEM_REGPRICE + " text not null, " +
    ITEM_LARGEPRICE + " text not null);";

今見ていない不要な変更をさらに下に表示したくないので、それは私を悩ませています。

4

1 に答える 1

1

スキーマを見てください。db.update()が を返す場合2、テーブル内の 2 つの行が更新されるため、whereClause2 つの行に一致します。デバッグの目的で、同じテーブルをクエリして、whereClause返される内容を確認します。結果セットを絞り込むために、スキーマを修正したり、検索条件を追加したりする必要がある場合があります。

于 2013-08-28T14:54:17.727 に答える