title: Android SQlite update just not working, without error
body: <p>I wrote some codes using <a href="http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/" rel="nofollow">this example</a> to save and update 2 long values in <strong>SQlite</strong>. I can create new row however I can't update it. I try everything which I can but I couldn't update a row and there is no error just not update row. I am using this code to update a row:</p>
  
  <pre><code>db.updateContact(new Contact(consumed, total));
  </code></pre>
  
  <p>which both consumed and total are long values. I can't see any error however still I couldn't success to update a row. My constructor and databesehandler codes are below:</p>
  
  <p><strong>Contaxt.java</strong></p>
  
  <pre><code>public class Contact {
  
  // private variables
  int _id;
  double _name;
  double _phone_number;
  
  // Empty constructor
  public Contact() {
  
  }
  
  // constructor
  public Contact(int id, double name, double _phone_number) {
      this._id = id;
      this._name = name;
      this._phone_number = _phone_number;
  }
  
  // constructor
  public Contact(double name, double _phone_number) {
      this._name = name;
      this._phone_number = _phone_number;
  }
  
  // getting ID
  public int getID() {
      return this._id;
  }
  
  // setting id
  public void setID(int id) {
      this._id = id;
  }
  
  // getting name
  public double getName() {
      return this._name;
  }
  
  // setting name
  public void setName(double name) {
      this._name = name;
  }
  
  // getting phone number
  public double getPhoneNumber() {
      return this._phone_number;
  }
  
  // setting phone number
  public void setPhoneNumber(double phone_number) {
      this._phone_number = phone_number;
  }
  </code></pre>
  
  <p>}</p>
  
  <p><strong>DatabeseHandler.java</strong></p>
  
  <pre><code>public class DatabaseHandler extends SQLiteOpenHelper {
  
      // All Static variables
      // Database Version
      private static final int DATABASE_VERSION = 1;
  
      // Database Name
      private static final String DATABASE_NAME = "contactsManager";
  
      // Contacts table name
      private static final String TABLE_CONTACTS = "contacts";
  
      // Contacts Table Columns names
      private static final String KEY_ID = "id";
      private static final String KEY_NAME = "name";
      private static final String KEY_PH_NO = "phone_number";
  
      public DatabaseHandler(Context context) {
          super(context, DATABASE_NAME, null, DATABASE_VERSION);
      }
  
      // Creating Tables
      @Override
      public void onCreate(SQLiteDatabase db) {
          String CREATE_CONTACTS_TABLE = "CREATE TABLE " + TABLE_CONTACTS + "(" + KEY_ID
                  + " INTEGER PRIMARY KEY AUTOINCREMENT," + KEY_NAME + " TEXT," + KEY_PH_NO + " TEXT" + ")";
          db.execSQL(CREATE_CONTACTS_TABLE);
      }
  
      // Upgrading database
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          // Drop older table if existed
          db.execSQL("DROP TABLE IF EXISTS " + TABLE_CONTACTS);
  
          // Create tables again
          onCreate(db);
      }
  
      // Adding new contact
      void addContact(Contact contact) {
          SQLiteDatabase db = this.getWritableDatabase();
  
          ContentValues values = new ContentValues();
          values.put(KEY_NAME, contact.getName()); // Contact Name
          values.put(KEY_PH_NO, contact.getPhoneNumber()); // Contact Phone
  
          // Inserting Row
          db.insert(TABLE_CONTACTS, null, values);
          db.close(); // Closing database connection
      }
  
      // Getting single contact
      Contact getContact(int id) {
          SQLiteDatabase db = this.getReadableDatabase();
  
          Cursor cursor = db.query(TABLE_CONTACTS, new String[] { KEY_ID, KEY_NAME, KEY_PH_NO }, KEY_ID + "=?",
                  new String[] { String.valueOf(id) }, null, null, null, null);
          if (cursor != null)
              cursor.moveToFirst();
  
          Contact contact = new Contact(cursor.getInt(0), cursor.getDouble(1), cursor.getDouble(2));
          // return contact
          return contact;
      }
  
      // Getting All Contacts
      public List&lt;Contact&gt; getAllContacts() {
          List&lt;Contact&gt; contactList = new ArrayList&lt;Contact&gt;();
          // Select All Query
          String selectQuery = "SELECT  * FROM " + TABLE_CONTACTS;
  
          SQLiteDatabase db = this.getWritableDatabase();
          Cursor cursor = db.rawQuery(selectQuery, null);
  
          // looping through all rows and adding to list
          if (cursor.moveToFirst()) {
              do {
                  Contact contact = new Contact();
                  contact.setID(cursor.getInt(0));
                  contact.setName(cursor.getDouble(1));
                  contact.setPhoneNumber(cursor.getDouble(2));
                  // Adding contact to list
                  contactList.add(contact);
              } while (cursor.moveToNext());
          }
  
          // return contact list
          return contactList;
      }
  
      // Updating single contact
      public int updateContact(Contact contact) {
          SQLiteDatabase db = this.getWritableDatabase();
  
          ContentValues values = new ContentValues();
          values.put(KEY_NAME, contact.getName());
          values.put(KEY_PH_NO, contact.getPhoneNumber());
  
          // updating row
          return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) });
      }
  
      // Deleting single contact
      public void deleteContact(Contact contact) {
          SQLiteDatabase db = this.getWritableDatabase();
          db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] { String.valueOf(contact.getID()) });
          db.close();
      }
  
      // Getting contacts Count
      public int getContactsCount() {
          String countQuery = "SELECT  * FROM " + TABLE_CONTACTS;
          SQLiteDatabase db = this.getReadableDatabase();
          Cursor cursor = db.rawQuery(countQuery, null);
          cursor.close();
  
          // return count
          return cursor.getCount();
      }
  }
  </code></pre>
  
  <p>Thanks in advance.</p>