我是通过示例来做的,这是我第一次使用SQLite
String name = etNewName.getText().toString();
String address = etNewAdress.getText().toString();
ContentValues cv = new ContentValues();
cv.put("name", name);
cv.put("address", address);
long rowID = db.insert("Org", null, cv);
Log.d("MyLog", "row inserted, ID = " + rowID);
updateDB();
adapter.notifyDataSetChanged();
所以在日志中,我得到ID = 1510,但当然,当我做
时int idColIndex = c.getColumnIndex("id");
int id = c.getInt(idColIndex);
Log.d("MyLog"," get id="+id);
它返回0,它不会返回我插入数据时得到的行ID,尽管我从文件中使用的初始数据库在'id'字段中得到了它的ID。
如何将该索引记录到“id”字段?
答案 0 :(得分:0)
getColumnIndex
将列名转换为列号。
返回0只意味着id
是游标中的第一列。
要获取光标当前行中某些列的值,您必须调用getInt():
int id = c.getInt(idColIndex);
答案 1 :(得分:0)
您需要使用以下代码来获取ID
的整数值int id = c.getInt(c.getColumnIndex("id"));
说明: 假设您的查询是
SELECT ID, COL1, COL2 FROM MYTABLE;
如果查询返回结果集say, ID COL1 COL2 1234 1020 2040
然后
c.getColumnIndex("id") ==> 0
c.getColumnIndex("COL1") ==> 1
c.getColumnIndex("COL2") ==> 2
c.getInt(c.getColumnIndex("id")); ==> 1234
c.getInt(c.getColumnIndex("id")); ==> 1020
c.getInt(c.getColumnIndex("id")); ==> 2040