【问题标题】:i cant update value in SQLite我无法更新 SQLite 中的值
【发布时间】:2021-02-02 13:32:39
【问题描述】:

我有这张表要sqlite:

public static final String TABLA_PARA_SEGUIR =
        "CREATE TABLE " + TABLA_SEGUIR + "(" +
                ID_ELEMENTO + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
                NOMBRE_MANGA + " TEXT NOT NULL, " +
                URL_MANGA + " TEXT NOT NULL, " +
                URL_IMAGEN + " TEXT NOT NULL, " +
                CONTADOR_CAPITULOS + " TEXT NOT NULL, " +
                BIT_SEGUIR_NO + " INTEGER);";

这是我获取Update值的方法:

private ContentValues mapaSiguiendo(SeguirManga sm){
    ContentValues cv = new ContentValues();
    cv.put(PaginasTabla.NOMBRE_MANGA, sm.getNombre());
    cv.put(PaginasTabla.URL_MANGA, sm.getUrl());
    cv.put(PaginasTabla.URL_IMAGEN, sm.getUrlImagen());
    cv.put(PaginasTabla.CONTADOR_CAPITULOS, sm.getContador());
    cv.put(PaginasTabla.BIT_SEGUIR_NO, sm.getValorSeguir());
    return cv;
}
public void actualizar(SeguirManga sm, Context actividad) {
    try{
        this.openWriteableDB();
        ContentValues cv = new ContentValues();
        cv.put(PaginasTabla.BIT_SEGUIR_NO, sm.getValorSeguir());
        db.update(PaginasTabla.TABLA_SEGUIR, cv, PaginasTabla.ID_ELEMENTO + " = ?", new String[]{String.valueOf(sm.getId())});
        db.close();
        Toast.makeText(actividad, "Modificado", Toast.LENGTH_SHORT).show();
    }catch(Exception sqlException){
        Toast.makeText(actividad, "Error: " + sqlException.getMessage(), Toast.LENGTH_SHORT).show();
    }
}

我在我的活动中添加了一个对象变量:

private SeguirManga seguirManga = new SeguirManga();

因此,在活动中,我使用更新方法来更改值:

private void dejarMetodoDaato(){
    PaginasSQL paginasSQL = new PaginasSQL(TMOnlineMangaSeleccion.this);
    seguirManga.setValorSeguir(0);
    paginasSQL.actualizar(seguirManga);
}

但这不起作用,因为当我按下按钮时:

dejarDato.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        dejarMetodoDaato();
    }
});

类:

public class SeguirManga {
    private int id;
    private String nombre;
    private String url;
    private String urlImagen;
    private String contador;
    private int valorSeguir;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getContador() {
        return contador;
    }

    public void setContador(String contador) {
        this.contador = contador;
    }

    public int getValorSeguir() {
        return valorSeguir;
    }

    public void setValorSeguir(int valorSeguir) {
        this.valorSeguir = valorSeguir;
    }

    public String getUrlImagen() {
        return urlImagen;
    }

    public void setUrlImagen(String urlImagen) {
        this.urlImagen = urlImagen;
    }

    public SeguirManga(){}

    public SeguirManga(int id, String nombre, String url, String urlImagen,String contador, int valorSeguir) {
        this.id = id;
        this.nombre = nombre;
        this.url = url;
        this.urlImagen = urlImagen;
        this.contador = contador;
        this.valorSeguir = valorSeguir;
    }
}

没有任何反应,因为值​​始终为 (1) 1。我的代码有什么问题?

【问题讨论】:

  • 什么是seguirManga。它是在哪里定义的?
  • 是一个对象类。我将添加代码问题
  • 因为值一直是 (1) 1 这是什么意思? seguirManga 包含将更新表中行的所有值,但您只设置了seguirManga.setValorSeguir(0);。 seguirManga的其他属性值是多少?
  • 我不需要更新其他属性。只是我需要更新我在问题中显示的值
  • mapaSiguiendo() 将使用来自seguirManga 的所有属性的值设置所有列,因此您要做的是更新所有列。

标签: java android sqlite android-sqlite


【解决方案1】:

您必须指定要更新的行的id:

private void dejarMetodoDaato(){
    PaginasSQL paginasSQL = new PaginasSQL(TMOnlineMangaSeleccion.this);
    seguirManga.setId(5); // change 5 to the value of the id of the row 
    seguirManga.setValorSeguir(0);
    paginasSQL.actualizar(seguirManga);
}

【讨论】:

    猜你喜欢
    • 2014-04-17
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2018-02-26
    • 2015-06-13
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多