我正在尝试更新sqlite数据库列中布尔字段的值,我首先要检查字段的值是否为0然后如果是,则应将值更新为1.
这是我到目前为止所做的:
String where = "student_number=?";
String[] whereArgs = new String[]{compare};
ContentValues cv = new ContentValues();
cv.put("student_number", 1);
if ("student_number" == "0") {
db.update("course1", cv, where, whereArgs);
Toast.makeText(getApplicationContext(), "Attendance Taken", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "Attendance already registered.", Toast.LENGTH_LONG).show();
}
但它没有更新,我认为问题在于if条件。
答案 0 :(得分:0)
这里if("student_number" == "0")
你正在比较字符串(并且糟糕的是,字符串应该与equals进行比较),这将永远是假的,你不是在比较字段student_number的值。
虽然你的代码是正确的,但它没有意义。将字段设置为1,然后检查值是否为0.
您可以通过简单的查询来完成您要做的事情。
"UPDATE table SET student_number = '1' WHERE student_number = '0' AND other_condition = 'x'"
没关系,但是无需检查前一个值是否为0,无论如何都可以更新它,因为它只能是真或假。
"UPDATE table SET student_number = '1' WHERE other_condition = 'x'"
两者都是正确的但不要忘记添加一些where子句,如果忘记所有行都会更新。
编辑:我没有告诉你使用原始查询,最好使用像update()这样的SQLiteDatabase方法,我只是想向你展示一些示例查询。