Android 带有where子句的sqlite不起作用
下面是我的代码片段。 我的查询确实返回一个值,但我不知道如何提取该值。Android 带有where子句的sqlite不起作用,android,sqlite,Android,Sqlite,下面是我的代码片段。 我的查询确实返回一个值,但我不知道如何提取该值。 showtoast(ID)不显示任何内容。请帮忙 try { String ID = null; mydb = openOrCreateDatabase(DBNAME, Context.MODE_PRIVATE, null); Cursor allrows = mydb.rawQuery( "SELECT REGID FROM " + TABLE + " where NAME = '"
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
);
}
您永远不会从
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);
}
}
阅读有关如何从cursori读取值的文档。我的代码没有输入if语句,我使用else语句只是为了查看我的代码是否输入if块,它没有。我的else块已执行。请告诉我可能是什么原因problem@nainasony这意味着没有找到行。