如何从数据库中获取android中给定行文本的id

时间:2012-03-28 07:59:04

标签: android database sqlite

你好朋友我是android.well的新手我创建了一个数据库表,我有几行如下

_id name city

1 maddy0 xyz0

2 maddy1 xyz1

3 maddy2 xyz2

现在我要将城市传递给该函数并获取该城市的行ID

说我是xyz0然后它应该给我那个输出为1。因为我尝试了这个

public String getDatatonumber(String s) {
    Cursor c = null;
    String result = new String();
    // TODO Auto-generated method stub
    // String[] columns = new String[]{ KEY_ROWID, KEY_NAME, KEY_SCORE};
    try {
        c = ourDatabase.rawQuery(
                "select _id from quotes_internal where text ='"+s+"';", null);
        // Cursor c = ourDatabase.query(DATABASE_TABLE_LOGICAL, columns,
        // null, null, null, null, null);

        int iName = c.getColumnIndex(KEY_ROWID);

        for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {

            result=(" " + c.getInt(iName));
        }
    } catch (Exception e) {
        // TODO: handle exception
    } finally {
        c.close();
    }
    return result;
}

我把这段代码放在数据库助手类中,并从我称之为

的主要活动中
results =new String();
results=db.getDatatonumber(texts).trim();
text.settext(results);

我无法理解我出错的地方我传递了数据库中的相同值。

2 个答案:

答案 0 :(得分:0)

在与Text

比较时,您需要使用LIKE Operator
c = ourDatabase.rawQuery("select _id from quotes_internal where text LIKE '" + s.trim() + "';", null );

答案 1 :(得分:0)

c = ourDatabase.rawQuery(
            "select _id from quotes_internal where city='"+s+"';", null);



for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {

        result=(" " + c.getColumnIndex("_id"));
    }

这将返回您的行ID