数据库值有时会更新,但有时不会?

问题描述:

我已经为数据库更新编写了一个简单的代码,但它有时会更新,有时候不会......我已经写了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

您的代码有点困惑。您可以将其简化为如下所示:\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()后,无需检查数据库是否打开。 –

雅我得到了我们的代码...

最后我解决了这个问题....实际上它是怎么一回事,因为线程的....

线程建立行后来和执行更新行先执行 我已解决它。有趣:)

发生这种情况是由于数据库的连接未打开。请保持ex.printstacktrace();在catch语句中。