我的 SQLite Update 语句不断将 0 插入第一个字段,然后插入正确的值

My SQLite Update statement keeps inserting 0 into the first field and the correct values after that

我遇到了一个非常烦人的错误,它一直在第一列中输入 0,然后在后面输入其余值。

这是我的代码:

System.out.println(forename);
String statement = "UPDATE " + USER_TABLE + " SET " + FORENAME + " = " + "'" + forename + "'"
+ " AND " + SURNAME + " = " + "'" + surname + "'" + " AND " + EMAIL + " = " + "'" + email + "'"  
+ "WHERE " + USER_ID + " = " + userID;
sqLiteDatabase.execSQL(statement);

所以如果名字是 Luke 它会打印 Luke 但是在 运行 这个查询之后 table 看起来像这样:

UserID  |  Forename   |  Surname   | Email
____________________________________________

1            0           Smith        luke@s.com

如您所见,Luke 未放入 Forename 字段,尽管我可以清楚地看到值 Luke 打印在 LogCat

应使用 ContentValues 完成此任务:

例如:

    SQLiteDatabase database = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(FORENAME, forename);
    values.put(SURNAME, surname);
    values.put(EMAIL, email);
    database.update(USER_TABLE, values, USER_ID + "=?", new String[] {userID});
    database.close();
    return true;