目前我有一個只有一行的表,我想更新該行的某些列。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
提交
取消