2011-01-12 81 views
0

的SQLite查询我有一个SQLite数据库,我有一个表命名object_zone。该表有两列,分别是integer:object和zone。问题与Android的

如果我的数据库复制到我的电脑,并与查询它:

SELECT object FROM object_zone WHERE zone = 791 

返回几行。

然而,在我的Android手机,如果我查询它:

Cursor cursor = database.query("object_zone", new String[] {"object"}, "zone = ?", new String[] { Long.toString(zoneId)}, null, null, null); 

凡=了zoneid 791,游标包含0行。我如何填充查询函数的用法?

回答

1

你有没有呼吁恢复光标cursor.moveToFirst()?无需所谓的是,cursor.getCount()可能会错误地返回0(或者也许是-1 ...)

我已经通过这几次绊倒了......

+0

麻烦的是,我有一个查询后循环正确的迭代游标行,并使用cursor.moveToNext(),并且循环不执行所有,(我使用布尔回报为循环条件,即同时(cursor.moveToNext())。据我所知,它返回任何行。怪异的是,我用同样的结构早些时候在我的代码为不同的查询,它工作正常,唯一的如果你只调用`moveToNext()`,而不是通过调用`moveToFirst()'开始,那么这个查询就没有WHERE子句,并且它正在查询一个不同的表。 – Ogre 2011-01-13 00:45:08

+0

@Ogre: `,那么我认为结果是不确定的(我可能是错误的,但我认为需要调用moveToNext()`) – 2011-01-13 01:20:55

0

也许这里的问题是铸造串。你可以试试rawQuery方法与您在计算机上执行相同的SQL?