似乎selectionArgs
没有正确绑定,但我在这里找不到任何错误。
这将返回2个结果 是正确的
String sql = "SELECT * FROM tblEvent_extDes WHERE (eguid = 196 ) ";
c = epgDB.rawQuery(sql, new String[] {});
这不会返回任何结果。 为什么?
String sql = "SELECT * FROM tblEvent_extDes WHERE (eguid = ? ) ";
c = epgDB.rawQuery(sql, new String[] {"196"});
编辑: 这有效......
sql = "SELECT rowid * FROM tblEvent_extDes WHERE eguid = " + String.valueOf(196);
// could replace 196 with a variable
答案 0 :(得分:1)
我遇到了同样的问题,这可能是转换问题,但是除非您使用以下内容我无法看到如何解决此问题:
String sql = "SELECT * FROM tblEvent_extDes WHERE (eguid = " + 196 + " ) ";
仅当196不是用户输入时,才能使用corse;)
答案 1 :(得分:1)
我可以确认你看到了什么,这就是我处理它的方式;
String selection = null;
String[] selectionArgs = null;
if(API_LEVEL <= 10){
//Make sure that you handle String variables accordingly.
//This assumes an int or long value.
selection = "id = " + variableId;
selectionArgs = null;
}else{ //Honeycomb/ICS/Jellybean
selection = "id = ?";
selectionArgs = new String[]{variableId});
}
//Query Code Here...
我还没有找到任何其他方法来处理这个问题。我希望这可以帮助你或其他任何人。