为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 SQLite 中更新单行的多列?

如何在 SQLite 中更新单行的多列?

婷婷同学_ 2023-02-23 14:47:25
目前我有一个只有一行的表,我想更新该行的某些列。insert 方法被正确执行,而 update 返回一个 id = 0 并且打印用户名始终是以前的用户名并且没有更新。@Overridepublic void onCreate(SQLiteDatabase db) {    db.execSQL("create table "+TABLE_NAME1+" (ID INTEGER PRIMARY KEY AUTOINCREMENT, USERNAME TEXT, WON INT, DRAW INT, LOST INT, CELLSNUMBER INT,RESULT INT)");        }public boolean addUserInformation(String name, int w, int l, int d, boolean firstTime){        SQLiteDatabase db = this.getWritableDatabase();        ContentValues values = new ContentValues();        values.put(USERNAME, name);        values.put(WIN, w);        values.put(LOST, l);        values.put(DRAW, d);        long id = 0;        if(firstTime == true ) {            id = db.insert(TABLE_NAME1, null, values);        }        if(firstTime == false){            id=db.update(TABLE_NAME1, values, "USERNAME = ? and WON = ? and DRAW = ?  and LOST = ?",new String[] {                    name,                    String.valueOf(w),                    String.valueOf(d),                    String.valueOf(l)            });        }        if(id == -1)            return false;        else            return true;    }
查看完整描述

1 回答

?
月关宝盒

TA贡献1772条经验 获得超5个赞

USERNAME = name我猜您想用 values更新行w, d, l
该方法的 3d 参数update()WHERE子句,在其中你应该只有:

USERNAME = ?

所以这样做:

id = db.update(TABLE_NAME1, values, "USERNAME = ?", new String[] {name});

这些值w, d, l不必在WHERE子句内。它们保存在变量中values并将更新表中的行。


查看完整回答
反对 回复 2023-02-23
  • 1 回答
  • 0 关注
  • 1649 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信