目前我有一个只有一行的表,我想更新该行的某些列。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
并将更新表中的行。
添加回答
举报
0/150
提交
取消