我已经编写了一个简单的数据库更新代码,但它有时更新,有时候不...我已经编写了LOG用于构造,但是日志提供了正确的输出。这是我正在尝试的:=
public void updateDownloadedAssetNumberOfStartingBytesEncrypted(int id, int startingBytesEncrypted)
{
SQLiteDatabase database = null;
int numOfRowsUpdated = 0;
try
{
database = getWritableDatabase();
ContentValues values = new ContentValues();
values.put("StartingBytesEncrypted", startingBytesEncrypted);
if(database.isOpen())
{
Log.v("updating in db","doc id - "+id + " encrypted bytes - "+startingBytesEncrypted);
numOfRowsUpdated = database.update("_assets", values, "Id = "+id, null);
}
else
{
Log.v("Database","the database is not open thus starting encrypted bytes were not updated");
}
Log.v("muber of rows updated - ",""+numOfRowsUpdated);
}
catch(Exception ex)
{
}
finally
{
if(database != null)
{
database.close();
}
}
}
问题是什么?任何帮助都是值得赞赏的。
答案 0 :(得分:1)
我有你的代码......
最后我解决了这个问题....实际上它是因为线程......
创建该行的线程稍后执行,并且首先执行了更新行 我已经解决了。有趣的是:)
答案 1 :(得分:0)
这是由于数据库的连接未打开而发生的。请保留ex.printstacktrace();在catch语句中。