База данных Sqlite, обновляющая строку android

Я разрабатываю приложение для Android, в котором мне нужно обновить столбец в таблице на основе определенного предложения where.Here это код ниже,

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); } 

Вышеприведенный код отлично работает с предложением where как null, но его бросание силы закрывается с whereclause. Неверно ли мой запрос?

Вам нужно избежать профилей. Таким образом, вы либо добавляете одиночный символ:

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

Или вариант:

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

Для более общей помощи в понимании того, как обновить строку базы данных, на этот раз документация была действительно полезной:

 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); 

Эта страница также была полезна: работа с SQLite Database (CRUD-операциями) на Android

В моем случае я сделал такой способ:

 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; } 

Попробуйте следующее:

Db.update ("yourtable", cvalue, "Profile_Name_for_weekly =" + "'" + profilename + "'", null);