Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用SQLite获取正确的ID_Android_Android Sqlite - Fatal编程技术网

Android 使用SQLite获取正确的ID

Android 使用SQLite获取正确的ID,android,android-sqlite,Android,Android Sqlite,我是通过示例来实现的,这是我第一次尝试使用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", nul

我是通过示例来实现的,这是我第一次尝试使用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();
例如,在log中,我得到了ID=1510,但当然,当我这样做的时候

int idColIndex = c.getColumnIndex("id");
int id = c.getInt(idColIndex);
Log.d("MyLog"," get id="+id);
它返回0,不返回插入数据时获得的行ID,尽管我从文件中使用的初始DB在“ID”字段中获得了它的ID


如何将索引记录到“id”字段中?

getColumnIndex
将列名转换为列号。 返回0只意味着
id
是光标中的第一列

要获取光标当前行中某列的值,必须调用:


您需要使用下面的代码来获取ID的整数值

int id = c.getInt(c.getColumnIndex("id"));
说明: 假设您的查询是

SELECT ID, COL1, COL2  FROM MYTABLE;
如果查询返回的结果集为, ID COL1 COL2 1234 1020 2040

然后


对不起,我错过了那个!我更新了问题。当然,我使用int id=c.getInt(idColIndex);,id仍然为0,因为插入数据时,它将返回表中的行号。另一方面,在插入数据时没有为id指定任何值。如果模式将0作为id的默认值,那么实际上没有什么错误。这只是一个猜测,因为我不知道数据库的真正模式。为什么需要知道行id?可能是重复的而不是重复的。但我插入的每个新数据都有0个id!应该有所不同。此外,插入后的第一个日志显示id=1523之类的内容,它实际上与“此问题已回答”无关!!答案完全与我的问题无关
SELECT ID, COL1, COL2  FROM MYTABLE;
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