从SQLite数据表中读取ID

时间:2015-11-11 09:47:22

标签: android sqlite

我尝试写colum roomname,之后我想阅读roomid。因此我有两种方法。第一个用于创建房间,第二个用于获取roomId。 (之后我想在另一个表中写下这个ID)

public boolean insertRoomNr(String room){
    SQLiteDatabase db = this.getWritableDatabase();
    Cursor dbCursor;

    ContentValues contentValues = new ContentValues();
    contentValues.put("roomname", room);
    db.insert(TABLE_ROOM, null, contentValues);

     Log.d("Room Name", room);
    return true;
}

public boolean insertRoomId(String room){
    SQLiteDatabase db = this.getWritableDatabase();
    String RoomID;
    RoomID = db.rawQuery("SELECT " + COL_RID + "  FROM " + TABLE_ROOM + " WHERE "+ COL_RNAME + " = ?",new String[]{room}).toString();

    Log.d("RoomID", RoomID);
    return true;
}

我通过点击Fragments

之一中的按钮来调用这些方法
    buttonsave.setOnClickListener(new View.OnClickListener() {
        Context ctx = getActivity();

        @Override
        public void onClick(View view) {

            mydb.insertRoomNr(roomnr.getText().toString());
            mydb.insertRoomId(roomnr.getText().toString());

            Log.d("ListViewFragment", "RAUMNUMMER HINZUGEFÜGT");
        }
    });

问题是我在第一个日志中得到了Room Name。但我的RoomID日志输出是11-11 11:05:33.938 27273-27273/com.sbeyer.daainv D/RaumId: android.database.sqlite.SQLiteCursor@f81c8ef我不能以纯文本形式获取ID?

1 个答案:

答案 0 :(得分:0)

RoomID = db.rawQuery("SELECT " + COL_RID + "  FROM " + TABLE_ROOM + " WHERE "+ COL_RNAME + " = ?",new String[]{room}).toString();

可以使用Like %?%代替= ?

检查区分大小写。

相关问题