我处理过将数据插入SqliteDb的示例应用程序,并尝试从数据库中获取第一行第一列的值(第一个单元格值)。我已经实现了将数据存储到数据库中的代码,如下所示:
private SQLiteDatabase sqLiteDatabase;
//create table MY_DATABASE (ID integer primary key, Content text not null);
private static final String SCRIPT_CREATE_DATABASE =
"create table " + MYDATABASE_TABLE + " ("
+ KEY_ID + " integer primary key autoincrement, "
+ KEY_CONTENT1 + " text not null, "
+ KEY_CONTENT2 + " text not null);";
插入数据
public long insert(String content1, String content2){
ContentValues contentValues = new ContentValues();
contentValues.put(KEY_CONTENT1, content1);
contentValues.put(KEY_CONTENT2, content2);
return sqLiteDatabase.insert(MYDATABASE_TABLE, null, contentValues);
}
从上面的代码中,我可以将数据保存在数据库中,但我如何从同一个数据库中获得最后插入的KEY_CONTENT1值?
请任何人帮助我
insert()
的返回值是您刚刚创建的行id。使用它查询KEY_CONTENT1
。这将是一种保存方式(比存储KEY_CONTENT1
值的临时变量安全得多)
您需要运行查询来获取最后插入的行id,然后使用该id检索行以获得所需的列:
SELECT last_insert_rowid();
或者尝试这样做:
SELECT KEY_CONTENT1 FROM Your_Table_Name WHERE KEY_ID IN (SELECT last_insert_rowid());