Sqlite3查询在Android上未正常运行

Sqlite3查询在Android上未正常运行,android,sqlite,Android,Sqlite,我有一个这样的问题 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,

我有一个这样的问题

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();
}
然后执行它。那么它就工作得很好了


发生了什么事?

我认为首先需要关闭游标,然后关闭数据库连接


情况如何?错误是什么?告诉我些什么?如果条件为真,它不会检索到value1的值……告诉我们你是如何在代码中执行的?@Waqas我已经编辑了我的帖子……你的
类别
类型是字符串吗?仍然不起作用。。我没有得到任何错误。。它只是不检索任何值。。。。只给我一个“…”(请尝试记录
c.getCount();
并查看您的查询实际获取了多少条记录?只需在执行rawQueryIts将count设置为“0”后立即记录即可…但是如果我通过控制台运行同一个查询,那么它会给我正确的值…实际上,当我第一次运行时,条件变为false,我没有得到任何错误。在第二次尝试控制台时,值变了,条件变为true…:)…完全是我的错误。。。。
//the order should be
c.close();
sqdb.close();