Database Sqlite che aggiorna una row Android

Sto sviluppando un'applicazione android, in cui ho bisogno di aggiornare una colonna in una tabella basata sulla clausola di un certo punto. Qui è il codice riportto di seguito,

public void updatethekeyofweeklycolumn(String profilename, String keystemp) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues values = new ContentValues(); values.put(Profile_keysofweekly, keystemp); db.update(TABLE_PROFILE_SETTINGS_FOR_WEEKLY, values,Profile_Name_for_weekly +" = "+profilename, null); } 

Il codice di cui sopra funziona bene con where la clausola come null, ma il suo gettare una forza vicino con la quale è impostato. La mia domanda è sbagliata?

  • Come passare dal ConstraintLayout predefinito a RelativeLayout in Android Studio 2.3.3
  • Imansible importre com.google.android.gms.location.LocationServices
  • Disabilita la tastiera soft su NumberPicker
  • Come modificare le immagini predefinite di CheckBox
  • Aggiunta di una vista personalizzata in XML ... ma con un tipo GENERIC
  • Effettuare modifiche all'interface utente principale attività dal thread in Service
  • Numero arabo in text arabo in Android
  • Il tipo di parametro T del tipo Android ha un limite superiore incompatibile: ViewDataBinding e MainActivity
  • Mostra attività dal basso verso l'alto
  • Utilizza icone diverse con diverse versioni SDK di Android
  • Icona animata per ActionItem
  • Android, Come posso applicare CSS in WebView?
  • 3 Solutions collect form web for “Database Sqlite che aggiorna una row Android”

    È necessario fuggire dal nome del profilo. Quindi aggiungi il singolo carattere:

     db.update(TABLE_PROFILE_SETTINGS_FOR_WEEKLY, values,Profile_Name_for_weekly +" = '"+ profilename + "'", null); 

    Oppure, l'opzione che seguirei:

     db.update(TABLE_PROFILE_SETTINGS_FOR_WEEKLY, values,Profile_Name_for_weekly +" = ?", new String[] {profilename}); 

    Per ulteriori informazioni generali sull'aggiornamento di una row del database, questa documentazione è stata effettivamente utile:

     SQLiteDatabase db = mDbHelper.getReadableDatabase(); // New value for one column ContentValues values = new ContentValues(); values.put(FeedEntry.COLUMN_NAME_TITLE, title); // Which row to update, based on the ID String selection = FeedEntry.COLUMN_NAME_ENTRY_ID + " LIKE ?"; String[] selectionArgs = { String.valueOf(rowId) }; int count = db.update( FeedReaderDbHelper.FeedEntry.TABLE_NAME, values, selection, selectionArgs); 

    Questa pagina è stata anche utile: Lavorare con SQLite Database (operazioni CRUD) in Android

    Nel mio caso ho fatto un metodo come questo:

     public long updateTime(long rowId) { // get current Unix epoc time in milliseconds long date = System.currentTimeMillis(); SQLiteDatabase db = helper.getWritableDatabase(); // helper is MyDatabaseHelper, a subclass database control class in which this updateTime method is resides ContentValues contentValues = new ContentValues(); contentValues.put(MyDatabaseHelper.DATE_TIME, date); // (column name, new row value) String selection = MyDatabaseHelper.ID + " LIKE ?"; // where ID column = rowId (that is, selectionArgs) String[] selectionArgs = { String.valueOf(rowId) }; long id = db.update(MyDatabaseHelper.FAVORITE_TABLE_NAME, contentValues, selection, selectionArgs); db.close(); return id; } 

    Provate con questo:

    db.update ("yourtable", cvalue, "ProfiloName_for_weekly =" + "'" + profilo nome + "'", null);

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.