java - 我无法更新 SQLite 中的值
问题描述
我有这个表到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。我的代码有什么问题?
解决方案
您必须指定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);
}
推荐阅读
- ssas - 多列排序
- mysql - 在 Laravel 的一次查询中计算收入和支出
- excel - 有没有办法通过回调 UI 编辑器使用 VBA 将自定义图标添加到功能区?
- python - Pydantic:如何从嵌套字典中提取模式?
- hibernate - 如何在 JPA 和 Hibernate 中急切地获取数据以在会话外使用?
- html - 未在 win 服务器 2016 上加载 CSS
- php - 我的 wordpress 自定义帖子显示内容而不是摘录
- c - 尝试将数据从 arduino 发送到 sql server 时出现 HTTP 错误。+HTTPACTION:0,301,305
- ios - Stripe SCA 需要处理下一个操作
- java - 为不同的客户提供宁静的服务