我從數據庫中獲取一行作爲遊標。然後希望得到它的ID是這樣的:無法從android數據庫中獲取正確的ID
String selectQuery = "SELECT * FROM " + TABLE_PEERS + " WHERE " + KEY_NAME + "= '" + peer.name +"'";
Cursor c = db.rawQuery(selectQuery, null);
Log.d("count", c.getCount()+""); // display: count: 1 in LogCat
long peer_id = c.getLong(c.getColumnIndexOrThrow(KEY_SENDER_ID)); // error occurs in this line;
它始終顯示錯誤:
Problems receiving packet: Index -1 requested, with a size of 1
,當我改變:
long peer_id = c.getLong(c.getColumnIndexOrThrow(KEY_SENDER_ID));
到
long peer_id = c.getColumnIndexOrThrow(KEY_SENDER_ID); Log.cat("****": peer_id+"");
LogCat將顯示****:0
。但它假設顯示1
。
任何人都可以解釋導致差異的原因以及我的代碼中哪裏出錯?提前致謝。
是KEY_SENDER_ID您正在查找的ID列? – Peshal
@Peshal是啊... – sydridgm
我想你需要移動光標一次才能訪問第一個項目:c.moveToNext() – Peshal