Java 如何在SQLite中更新一行的多个列?
我有一个表,目前只有一行,我想更新该行的某些列。 当update返回id=0时,insert方法被正确执行,并且打印用户名始终是前一个用户名,并且不会被更新Java 如何在SQLite中更新一行的多个列?,java,android,database,sqlite,android-sqlite,Java,Android,Database,Sqlite,Android Sqlite,我有一个表,目前只有一行,我想更新该行的某些列。 当update返回id=0时,insert方法被正确执行,并且打印用户名始终是前一个用户名,并且不会被更新 @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table "+TABLE_NAME1+" (ID INTEGER PRIMARY KEY AUTOINCREMENT, USERNAME TEXT, WON INT, DRAW INT, L
@Override
public 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;
}
我猜您想用USERNAME=name值w、d、l更新行。 该方法的3d参数是WHERE子句,其中您应该只有:
USERNAME = ?
这样做:
id = db.update(TABLE_NAME1, values, "USERNAME = ?", new String[] {name});
值w、d、l不需要在WHERE子句中。它们保存在变量值中,并将更新表中的行