如何在sqlite数据库中获取第一列数据?

时间:2012-11-19 04:23:01

标签: android sqlite

我正在尝试获取第一列,如下面的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(); 

}             

1 个答案:

答案 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;
}    
此外,还有。如果你收到错误,你应该发布它,以便我们知道发生了什么。