数据库值有时会更新,但有时不会?
问题描述:
我已经为数据库更新编写了一个简单的代码,但它有时会更新,有时候不会......我已经写了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();
}
}
}
问题是什么?任何帮助都是可以理解的。
答
雅我得到了我们的代码...
最后我解决了这个问题....实际上它是怎么一回事,因为线程的....
线程建立行后来和执行更新行先执行 我已解决它。有趣:)
答
发生这种情况是由于数据库的连接未打开。请保持ex.printstacktrace();在catch语句中。
您的代码有点困惑。您可以将其简化为如下所示:\t \t ContentValues cv = new ContentValues(); \t \t cv.put(“name”,name); \t \t cv.put(“value”,value); \t \t getWritableDatabase()。insert(“cameras”,“name”,cv); \t \t close(); 在调用getWritableDatabase()后,无需检查数据库是否打开。 –