Android SQL检索并设置多行

时间:2017-03-29 11:43:49

标签: android mysql sql sqlite

您好我已经设置了一个小的SQL查询,当两个ID匹配时,它只返回用户的电子邮件地址。现在我有一个非常简单的问题,现在我想要返回另一行,例如人名,但我很少坚持设置选择,然后在另一个活动上设置文本。在我当前的代码中,我可以设置一个值,但一些指导会很好。

Handler.java

public String getContactDetails(int id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = null;
    String name = "";

    try {
        cursor = db.rawQuery("SELECT email FROM person_list WHERE person_id=?", new String[] {id + ""});

        if(cursor.getCount() > 0) {

            cursor.moveToFirst();
            name = cursor.getString(cursor.getColumnIndex("email"));

            // how can I get another row?


        }
        return name;
    }finally {
        cursor.close();
    }
}

主要活动......

MyDatabaseHandler myDatabaseHandler = new MyDatabaseHandler(getApplicationContext(), null, null, 1);

String email = myDatabaseHandler.getContactDetails(id);

由于 它可能非常简单。

1 个答案:

答案 0 :(得分:0)

要调用下一个数据,可以使用 cursorObject.moveToNext()。如果光标已经超过结果集中的最后一个条目,则此方法将返回false。

this

public String getContactDetails(int id) {
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = null;
    String name = "";

    try {
        cursor = db.rawQuery("SELECT email FROM person_list WHERE person_id=?", new String[] {id + ""});

        if(cursor.getCount() > 0) {

            if (cursor.moveToFirst()){
              do{
                  name = cursor.getString(cursor.getColumnIndex("email"));
                } while (cursor.moveToNext()); // more to next data.
            }
        }
        return name;
    }finally {
        cursor.close();
    }
}