从SQLite DB获取单行而不使用ID

时间:2017-05-29 12:47:29

标签: android sqlite

以下代码使用id:

为我提供单行
public DataObject getContact(int id) {
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID,
                        KEY_PHN, KEY_PTYPE, KEY_PDATE ,KEY_PNAME, KEY_PNOTE }, KEY_ID + "=?",
                new String[] { String.valueOf(id) }, null, null, null, null);

        if (cursor != null) cursor.moveToFirst();

        DataObject contact = new DataObject(Integer.parseInt(cursor.getString(0)),cursor.getString(1),
                cursor.getString(2), cursor.getString(3),cursor.getString(4),cursor.getString(5));

        cursor.close();

        return contact;
}

但我想要使用一个字符串,例如:如果我的数据库如下所示,那么我想得到整行,当我说name2(这意味着它应该返回address2和phno2)

  1. name1 address1 phnno1
  2. name2 address2 phnno2
  3. name3 address3 phnno3
  4. name4 address4 phnno4

1 个答案:

答案 0 :(得分:0)

我用你的例子来建立我的答案。 你可以这样做:

Cursor cursorTable = db.query(CONTACTS,
            new String[]{NAME, ADDRESS, PHNNO},
            NAME + "= ?",
            new String[]{"name2"},
            null,
            null,
            null);

但是如果你想让它只返回name2的信息,你必须确保只有一行“name2”作为NAME