SQLite android - 检查列名是否等于某个值的if条件然后执行if语句

时间:2015-12-09 19:18:17

标签: java android sqlite

我正在尝试更新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条件。

1 个答案:

答案 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方法,我只是想向你展示一些示例查询。