获取数据库的行ID

时间:2011-03-09 22:32:20

标签: android

我想要做的是搜索我的数据库中的字符串,然后找出行ID是该字符串的位置。

我想这样做

    public void getRow(){

    ContactDB db = new ContactDB(this);
    db.open();
    Cursor c = db.getId("1234567890");
    String test = c.getString(c.getColumnIndex(db.PHONE_NUMBER));
    Log.v("Contact", "Row ID: " + test);
    db.close();

数据库类

public Cursor getId(String where){
    return db.query(DATABASE_TABLE, new String[] {ID},where,null,null,null,null);
}

它会给我我想要的但是我得到一个“游标索引越界”错误,我应该怎么做呢?

2 个答案:

答案 0 :(得分:1)

将getId更改为:

     public Cursor getId(String where){
        Cursor c = db.query(DATABASE_TABLE, new String[] {ID},where,null,null,null,null);
        if (c != null) c.moveToFirst();
        return c;
     }

答案 1 :(得分:0)

您需要在绑定之前执行c.moveToFirst()以阅读任何信息。

完成后也要做c.close()。