2011-01-12 79 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?