什么时候查询在Android上返回空?

Pij*_*usn 4 sql android cursor

我似乎没有找到任何有关查询,插入或任何其他返回null的SQL方法的信息.但是如果发生错误就会发生.我只是想知道游标是否为空意味着发生了错误,或者它是否意味着没有选择任何行(例如)?我不知道应该如何对待它 - 作为一种错误或可能不时发生的事情.

Sam*_*Sam 7

我不相信你需要检查if(cursor == null) {}.

首先
如果您的查询没有返回任何行,您将收到一个空的 Cursor.光标将不会null.

有很多方法可以检查Cursor是否为空:

  • if(cursor.getCount == 0) {}
  • if(!cursor.moveToFirst()) {}

事实上,所有Cursor#moveTo ...()方法都会返回true或者false,如果您收到,false那么您请求的行不存在.


如果发生错误,则需要在try-catch块中捕获错误,否则应用程序将从未处理的异常中崩溃.


此外insert(),update()delete()返回一个整数,而不是光标.如果没有行影响这些方法返回,则这些方法返回受语句影响的行数0.