Проблема с обновлением данных в SQLite- android - PullRequest
0 голосов
/ 27 мая 2020

Это моя таблица

db.execSQL("CREATE TABLE tbl_groupAccount ( \n" +
        "    ID                 INTEGER PRIMARY KEY AUTOINCREMENT\n" +
        "                               NOT NULL\n" +
        "                               UNIQUE,\n" +
        "    ACCOUNT_GROUP_NAME VARCHAR,\n" +
        "    ACCOUNT_GROUP_TYPE  VARCHAR \n" +
        ");");

, и я использую ее для обновления данных в таблице

public boolean updateAccountGroup(String nameAccountGroup,String groupAccountType, Integer id) {
    boolean result;
    String sql = "UPDATE tbl_groupAccount" +
            " SET ACCOUNT_GROUP_NAME , ACCOUNT_GROUP_TYPE = '" + nameAccountGroup + groupAccountType + "'" +
            "WHERE ID = " + id;

    try {
        SQLiteDatabase database = this.getWritableDatabase();
        database.execSQL(sql);
        database.close();
        result = true;
    } catch (Exception ex) {
        result = false;
    }
    return result;
}

Когда я нажимаю кнопку для обновления данных в таблице, ничего не происходит . И никаких ошибок не возникает. И в таблице ничего не обновляется. Кто-нибудь может мне помочь. Пожалуйста

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 мая 2020

Неправильный синтаксис оператора UPDATE. Также не объединяйте параметры, которые вы хотите передать запросу. Рекомендуемый и безопасный способ сделать это - использовать заполнители метода update() и ?:

public boolean updateAccountGroup(String nameAccountGroup,String groupAccountType, Integer id) {
    ContentValues c = new ContentValues();
    c.put("ACCOUNT_GROUP_NAME", nameAccountGroup);
    c.put("ACCOUNT_GROUP_TYPE", groupAccountType);
    SQLiteDatabase db = this.getWritableDatabase();
    boolean result = db.update("tbl_groupAccount", c, "ID = ?", new String[] {String.valueOf(id)}) > 0;
    db.close();            
    return result;
}

Метод update() возвращает количество затронутых / обновленных строк, поэтому, если это число больше чем 0 метод updateAccountGroup() вернет true.

0 голосов
/ 27 мая 2020

Ваше обновление sql должно выглядеть так:

String sql = "UPDATE tbl_groupAccount" +
                " SET ACCOUNT_GROUP_NAME = '" + nameAccountGroup + "' , ACCOUNT_GROUP_TYPE ='"+ groupAccountType + "'" +
                " WHERE ID = " + id;
...