2012-03-16 50 views
0

正常運行,我有這樣的SQLITE3查詢未在Android

SELECT value1 FROM mytable where (value1 > value2) AND category = 1 ; 

此查詢不能在Android的正確執行。雖然如果我手動去

/data/data/packagename/databases/mydatabase.db 

這裏是代碼

try { 
SQLiteDatabase sqdb = _context.openOrCreateDatabase(_DB_NAME, 0, 
       null); 
String sql = null; 
sql = "SELECT value1 FROM mytable where (value1 > value2) AND category = " + category 
       +"; "; 
Cursor c = sqdb.rawQuery(sql, null); 
Log.i("sql = ", sql); 

if (c.moveToFirst()) { 
while (!c.isAfterLast()) { 

categoryValue = c.getString(0); 
c.moveToNext(); 
} 
} 
Log.i("categoryValue", categoryValue); 
sqdb.close(); 
c.close(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 

然後執行它。然後它完美地工作。

發生了什麼事?

+1

它是如何表現?什麼是錯誤?說點什麼? – 2012-03-16 10:54:55

+0

如果條件爲真,它不會檢索到value1的值..... – 2012-03-16 10:58:19

+0

向我們展示如何在代碼中執行? – waqaslam 2012-03-16 10:58:20

回答

1

我認爲首先你需要關閉光標然後數據庫連接

//the order should be 
c.close(); 
sqdb.close(); 
+0

仍然沒有工作..而我沒有得到任何錯誤..它只是沒有檢索任何值....給我「」只...( – 2012-03-16 11:15:37

+0

嘗試記錄'c.getCount();'看看有多少記錄實際上是由您的查詢獲取?只需在執行rawQuery後記錄它 – waqaslam 2012-03-16 11:21:08

+0

它的計數爲「0」...但是,如果我通過控制檯運行相同的查詢,那麼它會給我正確的值.... – 2012-03-16 11:29:54