我正在开发一个应用程序,我遇到了一个问题,这个问题一直困扰着我几个小时,我无法理解它。
这是代码的一部分:
int id = getID();
cursor = db.rawQuery("SELECT * FROM Answers WHERE QLink = " + id, null);
int count = cursor.getCount();
所以问题是count总是等于0但不应该。我已经检查过id是不是错了。我删除了包括WHERE在内的所有内容后得到了一些结果,所以表格很好。 QLink字段类型是INTEGER,也许我应该将其替换为NUMERIC之类的东西?
答案 0 :(得分:1)
你试过吗
cursor = db.rawQuery("SELECT * FROM Answers WHERE QLink = '" + id + "'", null);
答案 1 :(得分:0)
您是否尝试过绑定?
String id = Integer.toString(getID())
cursor = db.rawQuery("SELECT * FROM Answers WHERE QLink = ?", new String[]{id});
答案 2 :(得分:0)
1)QLink是否是正确的列名?
2)在运行.getCount()
moveToFirst()
我记得在使用.getCount()
3)你试过吗?
db.query("Answers",
new String[] { "whatever columns" },
"QLink = ?", new String[] { id }, null, null, null);
或
db.query("Answers",
new String[] { "whatever columns" },
"QLink = " + id, null, null, null, null);
或
SQLiteDatabase db = dbHelper.getWritableDatabase();
SQLiteStatement stmt = db.compileStatement("select * from answers where qlink = ?");
stmt.bindLong(1, id);
stmt.execute();
您可能需要更改qlink的数据类型。
教程:http://www.anotherandroidblog.com/2010/08/04/android-database-tutorial/3/#getrowasarray
答案 3 :(得分:0)
我一直在测试它,这是我的意见。我希望能帮到你。
我使用INTEGER TYPE创建带有'QLink'列的表。
我通过SQLite Browser(sqlite程序之一)插入日期抛出。
问题是“QLink”列肯定是INTEGER TYPE, 但我可以插入'4'或'4',这意味着它不是整数类型,即带空格的字符串类型。
我执行这样的查询消息“select * from TEST_TABLE QLink = 4;”,没有结果。
我再试一次,“从TEST_TABLE中选择* QLink ='4';”,结果就是这样。
我很少使用sqlite,所以我不专业。 但我不明白为什么我可以将字符串值插入INTEGER TYPE列。
我建议您检查表格上的ID值是否为空白字符串,我希望您找到答案。