【问题标题】: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 看看我编辑的帖子...

标签: android mysql sqlite logic


【解决方案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 添加到列表中..
  • 我只更新了代码只取返回值。检查您的代码...没有任何问题..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
  • 2020-07-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多