如何在 SQLite Android 中提交?
Posted
技术标签:
【中文标题】如何在 SQLite Android 中提交?【英文标题】:How to commit in SQLite Android? 【发布时间】:2019-06-18 04:25:30 【问题描述】:我想在我的应用程序中更新我的 sqlite 表,但它不起作用。 这是我的代码:
public boolean updateTable(Employee emp)
String idEmp = emp.getId();
SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
try
ContentValues contentValues = new ContentValues();
contentValues.put(Employee.COLUMN_ADDRESS,emp.getAddress());
contentValues.put(Employee.COLUMN_CODE_CITY,emp.getCodeCity());
contentValues.put(Employee.COLUMN_COMPANY_CODE,emp.getCompanyCode());
long result = db.update(Employee.TABLE_NAME, contentValues, "ID = ?",new String[] idEmp);
if (result == -1)
return false;
else
db.setTransactionSuccessful();
return true;
finally
db.endTransaction();
你知道如何解决这个问题吗?
【问题讨论】:
但不起作用。这到底是什么意思? 我想更新表格,但是表格没有更新...简单! easy!... 您必须尽可能准确地描述您的问题/错误...理解“不工作”并不是那么“容易”技术方式... 这是更新某些表的正常方法,但在这种情况下(可能)更新查询未提交 【参考方案1】:您的代码似乎没问题,除了一些可能令人困惑的问题。
也就是说,更新永远不会返回 -1,它会返回 0(没有更新)或正数(更新的行数)。因此,永远不会返回 false。
另一个问题是您正在捕获任何异常并且什么都不做。并可能隐藏有用的信息。
但是我建议您的问题是您的更新实际上并未更新(没有匹配的 id),而是返回 true 而不是 false,因此不是提交失败,而只是没有完成更新。
将if (result == -1)
更改为if (result == 0)
将返回更具指示性的结果。
【讨论】:
以上是关于如何在 SQLite Android 中提交?的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 Android Studio / SQLite 中的“空对象引用”错误? [复制]
如何在使用 sqlite 的 ios 应用程序中使用“已提交”隔离级别?
提交新应用程序时如何更新我的 Database.sqlite