我是编程新手
我在互联网上找到了这段代码,它工作正常

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/

10-09 12:40