2011-11-15 136 views
0

如何更新android数据库中表的值?在下面的代码,它被插入,但没有更新,如果有更新,所有值显示为0。什么是错的这个代码使用新表值更新数据库

private void InsertINcurrentinfo(int iNCallsToLN, int iNLocalCallsM, 
     int iNLocalCallsL, int iNSTDCallsHM, int iNSTDCallsM, 
     int iNSTDCallsL, int iNgp1, int iNgp2, int iNgp3, int iNSplCalls) { 
    // TODO Auto-generated method stub 

    try { 
     myDB = SQLiteDatabase.openDatabase(DB_PATH, null, SQLiteDatabase.OPEN_READWRITE); 
     Cursor cursor = myDB.query(TABLE_CURRENTINFO, null, null, null,null, null, null); 
     int cnt=cursor.getCount(); 
     cursor.close(); 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put("value1", String.valueOf(iNCallsToLN)); 
     initialValues.put("value2", String.valueOf(iNLocalCallsM)); 
     initialValues.put("value3", String.valueOf(iNLocalCallsL)); 
     initialValues.put("value4", String.valueOf(iNSTDCallsHM)); 
     initialValues.put("value5", String.valueOf(iNSTDCallsM)); 
     initialValues.put("value6", String.valueOf(iNSTDCallsL)); 
     initialValues.put("value7", String.valueOf(iNgp1)); 



     if(cnt==0){ 
      myDB.insert(TABLE_CURRENTINFO, null, initialValues); 
     }else{ 
      myDB.update(TABLE_CURRENTINFO, initialValues, null, null); 
     } 
     if (myDB != null) { 
      myDB.close(); 
     } 

    }catch(Exception ex) 
    { 
     if (myDB != null) { 
      myDB.close(); 
     } 
     Toast.makeText(getBaseContext(), "Error occured while updating Current CallInfo"+ex.toString(), 
       Toast.LENGTH_LONG).show(); 

    } 

} 
+0

难道ü检查是否你正在获取值的函数参数是正确的值。或者它也是0. –

+0

您是否尝试过使用它:iNCallsToLN +“”而不是在您的代码中使用String.valueOf(iNCallsToLN)? – Hiral

+0

你的猜测是对的Arun先生。 – user993444

回答

0

尝试增加startManagingCursor(cursor);int cnt=cursor.getCount();