我正在尝试获取第一列,如下面的sql,但我的代码显示错误。
SELECT subject FROM setting WHERE rowid=1
public void getSetting(){
result = "";
SQLiteDatabase db = myDbHelper.getReadableDatabase();
Cursor c = db.query(true, "setting", new String[] {"subject", "language", "selection"}, "row=1", null, null, null, null, null);
for(c.moveToFirst();!(c.isAfterLast());c.moveToNext()){
result = result + c.getString(0);
result = result + c.getString(0);
result = result + c.getString(0);
}
if (c.getCount() == 0)
result = result + "result not found";
c.close();
db.close();
myDbHelper.close();
}
答案 0 :(得分:1)
你的东西有点难以理解,但我想我知道你想要什么。你得到什么让游标只返回行的id是特定值的一行。而且您只需要来自该返回行的一列的字符串。我认为主要问题是您指定了您正在寻找的_id
列。你要么叫它row
,要么rowid
,你要仔细检查一下。
此外,我希望以下重写可以解决您可能遇到的其他问题。
public String getSetting() {
String result = "";
String[] columns = {"subject"};
String[] selectionArgs = {"1"};
String LIMIT = String.valueOf(1); // <-- number of results we want/expect
SQLiteDatabase db = myDbHelper.getReadableDatabase();
Cursor c = db.query(true, "setting", columns, "rowid = ?", selectionArgs, null, null, null, LIMIT);
if (c.moveToFirst()) {
result = result + c.getString(0);
} else {
result = result + "result not found";
}
c.close();
myDbHelper.close();
return result;
}
此外,还有。如果你收到错误,你应该发布它,以便我们知道发生了什么。