如何在插入数据库时立即检索插入的值
Posted
技术标签:
【中文标题】如何在插入数据库时立即检索插入的值【英文标题】:How to retrieve the inserted value immediately at the time of insertion in DB 【发布时间】:2013-11-09 15:39:24 【问题描述】:我的问题是在插入后将值插入数据库时,我想立即从该表中获取值,但我遇到了异常。
我的代码是这样的:
//insert values to DB
button.setOnClickListener(new onClickListner())
public void onclick()
mDbHandler.addMedicinesDetails(new MedicineList(mName, barcode_value,dosage_per_day,
days, notes));
//Retrieve value from DB
mMedicineList= mDbHandler.getMedicineId(mName,barcode_value,dosage_per_day,days,notes);
long medicineid = mMedicineList.get(0).getId();
Toast.makeText(getApplicationContext(), ""+mMedicineList, Toast.LENGTH_SHORT).show();
我的数据库代码:
public void addMedicinesDetails(MedicineList medicineList)
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MEDICINENAME, medicineList.getMedicineName());
values.put(BARCODE, medicineList.getBarcodeValue());
values.put(DOSAGEPERDAY, medicineList.getDosage_per_day());
values.put(DAY, medicineList.getDays());
values.put(NOTES, medicineList.getNotes());
db.insert(TABLENAME, null, values);
db.close();
不知道好不好。
请任何人提供建议...
【问题讨论】:
显示数据插入表的代码... @PankajKumar 看看我编辑的帖子... 【参考方案1】:SQLite insert() 返回新插入行的行 ID,如果发生错误,则返回 -1。
那么为什么不修改addMedicinesDetails()
以返回插入的ID。像下面的例子
long newRowId = db.insert(
FeedEntry.TABLE_NAME,
FeedEntry.COLUMN_NAME_NULLABLE,
values);
return newRowId
查看您的修改后,您的代码应该是
public long addMedicinesDetails(MedicineList medicineList)
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(MEDICINENAME, medicineList.getMedicineName());
values.put(BARCODE, medicineList.getBarcodeValue());
values.put(DOSAGEPERDAY, medicineList.getDosage_per_day());
values.put(DAY, medicineList.getDays());
values.put(NOTES, medicineList.getNotes());
long id = db.insert(TABLENAME, null, values);
db.close();
return id;
【讨论】:
我正在使用 arraylist 将值插入 DB。 但您只向 DB 中插入了一个值 但插入数据不止一次。 你在哪里插入不止一次?????????我在方法中没有看到任何循环?如果您正在使用循环,那么您可以将这些 id 添加到列表中.. 我只更新了代码只取返回值。检查您的代码...没有任何问题..以上是关于如何在插入数据库时立即检索插入的值的主要内容,如果未能解决你的问题,请参考以下文章