1

我正在尝试获取如下 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(); 

}             
4

1 回答 1

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;
}    

而且,此外。如果您遇到错误,您应该发布它,以便我们知道发生了什么。

于 2012-11-19T07:20:35.850 回答