【发布时间】:2014-11-05 14:14:26
【问题描述】:
我已经使用 SQLiteAssetHelper 创建了我的 sqlite 数据库,我可以很好地执行 CRUD 操作。但是,我无法让以下 Select 语句返回任何行:
String query = "Select * from Student where serial=?";
Cursor c = rawQuery(query, String[]{serial.trim()});
序列值最初为 null,并在应用程序中更新。我的更新查询在这里:
ContentValues cv = new ContentValues();
cv.put("serial", serial.trim());
cv.put("isactivated", 1);
//This returns "1" meaning 1 row was affected
mDb.update("Student", cv, "uid=?", new String[]{String.valueOf(student.getUid())});
我数据库中的序列字段不是主键。这就是它不起作用的原因吗?主键的选择语句工作正常:
String query = "Select * from Student where id=?";
Cursor c = rawQuery(query, String[]{String.valueOf(id)});
【问题讨论】:
-
返回 0 行吗?你的 logcat 说什么?
-
您也可以使用非主键从数据库中获取数据,更新后能否检查序列值?
-
伙计,
serial列有实际值还是为空?更新真的有什么作用吗?选择查询看起来很好...确保serial的值不是null否则选择查询将不会返回任何内容 -
db.update() 返回受影响的行数。它正在返回一个。这意味着它工作正常?
-
我从外部来源获得了连续剧。不,它不为空