我是编程新手
我在互联网上找到了这段代码,它工作正常
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();
}
但我无法理解
if(c!=null)
{
c.moveToFirst();
}
部分。它到底能做什么?如果我删除了
if(c!=null) { c.moveToFirst(); }
部分,代码不起作用。
最佳答案
SQLiteDatabase.query()的文档说查询方法返回:
“一个光标对象,位于第一个条目之前。”
调用moveToFirst()
有两件事:它允许您测试查询是否返回空集(通过测试返回值),并将光标移动到第一个结果(当集不为空时)。请注意,为防止返回的空集,您发布的代码应测试返回值(它没有这样做)。
与对moveToFirst()
的调用不同,对if(c!=null)
的测试是无用的。 query()
将返回Cursor
对象,否则将引发异常。它永远不会返回null
。
关于android - SQLite游标中的moveToFirst()的用法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12445010/