Android SQLite查询以获取列数据
使用以下查询获取列数据:Android SQLite查询以获取列数据,android,sqlite,Android,Sqlite,使用以下查询获取列数据: public String getR(String str) { String strR = "SELECT col_no FROM tracking where col_id = '"+str+"' ORDER BY col_no DESC LIMIT 1"; return strR; } 在活动中,我试图阅读返回的strR: String string = mydb.getR("1400"); Toast.makeText(Sy
public String getR(String str) {
String strR = "SELECT col_no FROM tracking where col_id = '"+str+"' ORDER BY col_no DESC LIMIT 1";
return strR;
}
在活动中,我试图阅读返回的strR
:
String string = mydb.getR("1400");
Toast.makeText(SyncAll.this, string, Toast.LENGTH_SHORT).show();
但是在Toast中,我得到的是我的Select查询本身,而不是Record
,如下所示:
SELECT col_no FROM tracking where col_id = '1400' ORDER BY col_no DESC LIMIT 1
我可以知道吗!我哪里出错了?您正在调用函数getR,该函数返回字符串值strR
我假设mydb是来自类SQLiteOpenHelper的扩展对象,并且您已经遵循了这里的文档,那么您将不得不执行如下查询:
Cursor cursor = null;
try {
SQLiteDatabase db = this.getWritableDatabase();
synchronized(this) {
cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
col_no = cursor.getInt(0);
}
}
} finally {
if (null != cursor)
cursor.close();
}
return col_no;
我尝试了上面prosper k建议的相同方法,最终得到了解决方案:
public String getR(String str) {
String strR = "SELECT col_no FROM tracking where col_id = '"+str+"' ORDER BY col_no DESC LIMIT 1";
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(strR, null);
if (cursor != null)
cursor.moveToFirst();
strR = cursor.getString(0);
return strR;
}
Dude,使用SQLiteDatabase.rawQuery(strR,null)代码>要在数据库上执行查询,然后从游标中提取数据,请不要对此进行否决表决,我也尝试并发布了我的代码。。。请尊重我,我从不投这种类型的票。有关问题,请参见下面的tutgetAllContacts()
method谢谢我找到了解决方案,你的技巧对我很有用@ρаσѕρєаK勾选了你的评论,认为有用