Asw*_*win 21 sqlite android cursor
我是一个编程新手,我在互联网上找到了这段代码,它工作正常
Cursor c=db.query(DataBase.TB_NAME, new String[] {DataBase.KEY_ROWID,DataBase.KEY_RATE}, DataBase.KEY_ROWID+"= 1", null, null, null, null);
if(c!=null)
{
c.moveToFirst();
}
Run Code Online (Sandbox Code Playgroud)
但我无法理解使用的
if(c!=null)
{
c.moveToFirst();
}
Run Code Online (Sandbox Code Playgroud)
部分.它究竟做了什么,如果我删除了
if(c!=null) { c.moveToFirst(); }
Run Code Online (Sandbox Code Playgroud)
部分,代码不起作用.
Ted*_*opp 56
SQLiteDatabase.query()的文档说查询方法返回:
"一个Cursor对象,位于第一个条目之前."
调用moveToFirst()有两件事:它允许您测试查询是否返回空集(通过测试返回值)并将光标移动到第一个结果(当集合不为空时).请注意,为了防止空返回集,您发布的代码应该测试返回值(它没有这样做).
与呼叫不同moveToFirst(),测试if(c!=null)是无用的; query()将返回一个Cursor对象,否则将抛出异常.它永远不会回来null.
mac*_*Jun 11
if (c.moveToFirst()) {
while(!c.isAfterLast()) { // If you use c.moveToNext() here, you will bypass the first row, which is WRONG
...
c.moveToNext();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
39520 次 |
| 最近记录: |