以下是我的代码段。
我的查询确实返回单个值,但我不知道如何提取该值。
showtoast(ID)
没有显示任何内容。请帮忙
try {
String ID = null;
mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null);
Cursor allrows = mydb.rawQuery(
"SELECT REGID FROM " + TABLE + " where NAME = '" + name_from_spinner + "'" ,
null
);
if (allrows.moveToFirst()) {
showToast("not empty");
ID = allrows.getString(0);
showToast(ID);
} else {
showToast("empty");
}
allrows.close();
mydb.close();
} catch (Exception e) {
Toast.makeText(
getApplicationContext(),
"Error encountered.",
Toast.LENGTH_LONG
);
}
答案 0 :(得分:1)
永远不会从rawQuery
获得空标记。而是使用moveToFirst
:
if (allrows.moveToFirst()) {
showToast("not empty");
ID = allrows.getString(0);
showToast(ID);
}
此外,由于您只选择1列,因此您知道它的索引将为0。
如果您希望收到多个列,可以像这样循环光标:
if (allrows.getCount() == 0) {
showToast("empty");
} else {
while (allrows.moveToNext()) {
ID = allrows.getString(0);
showToast(ID);
}
}