Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在SQLite中更新一行的多个列?_Java_Android_Database_Sqlite_Android Sqlite - Fatal编程技术网

Java 如何在SQLite中更新一行的多个列?

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

我有一个表,目前只有一行,我想更新该行的某些列。 当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, 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子句中。它们保存在变量值中,并将更新表中的行