我正在尝试查询sqlite android以查看例如表中存在给定用户名的用户数量.这是我的功能.我必须指定"getContentResolver()!= null",因此是变量名.
private int findSelectedUser(String name) {
int count = 0;
try {
String[] whereArgs = new String[] {name};
String[] PROJECTION = new String[] { MyProvider.SETTINGS_USERNAME };
Cursor c = getContentResolver().query(MyProvider.SETTINGS_URI,
PROJECTION, MyProvider.SETTINGS_USERNAME , whereArgs, null);
if (c != null) {
count = c.getCount();
c.close();
}
} catch (NullPointerException e) {
}
System.out.println("Found something? " + count);
return count;
}
Run Code Online (Sandbox Code Playgroud)
跑完后我收到了主题的错误......并且没有得到它.在我的where子句中,我有一列,在我的where参数中有一个值.请帮我看一下这个,谢谢.
我猜这有效:
String[] whereArgs = new String[] {name};
String[] PROJECTION = new String[] { MyProvider.SETTINGS_USERNAME };
Cursor c = getContentResolver().query(MyProvider.SETTINGS_URI,
PROJECTION, MyProvider.SETTINGS_USERNAME + "=?" , whereArgs, null);
if (c != null) {
count = c.getCount();
c.close();
}
Run Code Online (Sandbox Code Playgroud)
如果你想使用whereArgs你必须有相同数量的?在where为你的项目whereArgs
whereArgs将替换?最终的数据库查询
String where = "name = ? OR name = ?";
String[] whereArgs = new String[] {
"Peter",
"Jim"
};
Run Code Online (Sandbox Code Playgroud)
这导致name = 'Peter' OR name = 'Jim'了查询.
顺便说一句:不要catch(NullPointerException e)- 让你的代码安全,这样就不会发生
| 归档时间: |
|
| 查看次数: |
4999 次 |
| 最近记录: |