Android SQLite更新不工作
我正在尝试为任意数量的行更新一列 以下是函数:Android SQLite更新不工作,android,sqlite,Android,Sqlite,我正在尝试为任意数量的行更新一列 以下是函数: public void setAwardsSyncComplete(String[] ids) { String inArray = StringUtils.separateCommas(ids); db.beginTransaction(); try { ContentValues contentValues = new ContentValues(); contentValues.pu
public void setAwardsSyncComplete(String[] ids) {
String inArray = StringUtils.separateCommas(ids);
db.beginTransaction();
try {
ContentValues contentValues = new ContentValues();
contentValues.put(COL_SYNCED, true);
int rowsAffected = db.update(TABLE, contentValues, COL_ID + " IN (" + inArray + ")", null);
} catch (Exception e) {
DebugLog.e("Error in transaction", e.toString());
} finally {
db.endTransaction();
}
}
奇怪的是,rowsAffected返回正确(即rowsAffected>0),但列值仍然为null
我是否忽略了一些非常简单的事情
谢谢。sqlite表中没有显式布尔类型? 您试图更新的列的数据类型是什么
您需要调用db.setTransactionSuccusful()您需要在
db.update
之后调用db.setTransactionSuccusful()
,否则在调用endTransaction()时任何更改都将回滚。当您使用事务时,您需要调用db.setTransactionSuccessful();在try子句的末尾。否则,更新将回滚
看
希望这有帮助
菲尔·莱洛(Phil Lello)我认为你的更新有问题
您需要循环数组并逐个更新
private int _rowsAffected;
foreach (var a in inArray)
{
_rowsAffected= db.update(TABLE, contentValues, COL_ID + " = (" + a +")", null);
}
db.Commit();
db.setTransactionSuccussful();
if(_rowsAffected > 0)
//Success
问候