2012-03-16 49 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