Estou tentando atualizar uma linha específica há um tempo e parece que existem duas maneiras de fazer isso. Pelo que li e tentei, você pode simplesmente usar o:
execSQL(String sql)
método
ou o:
update(String table, ContentValues values, String whereClause, String[] whereArgs)
método.
(Deixe-me saber se isso está incorreto, pois sou novo no android e muito novo no SQL.)
Então deixe-me chegar ao meu código real.
myDB.update(TableName, "(Field1, Field2, Field3)" + " VALUES ('Bob', 19, 'Male')", "where _id = 1", null);
Estou tentando fazer isso:
Atualize Field1, Field2 e Field3 onde a chave primária (_id) é igual a 1.
O Eclipse me fornece uma linha vermelha logo abaixo da palavra "update" e me fornece esta explicação:
A atualização do método (String, ContentValues, String, String []) no tipo SQLiteDatabase não é aplicável aos argumentos (String, String, String, null)
Acho que não estou atribuindo os ContentValues corretamente. Alguém pode me apontar na direção certa?
myDB.update(TableName, cv, "_id=?", new String[]{id})
. O SQLite preencherá automaticamente o quarto parâmetro no "?" no terceiro parâmetro, ou seja, a cláusula WHERE. "?" Se o seu terceiro param contém n s, a quarta param deve ser um String [] de comprimento nManeira simples:
fonte
execSQL()
para atualizações não funcionará. Leia execSQL () com UPDATE não é atualizado .Primeiro, crie um objeto ContentValues :
Em seguida, use o método de atualização. Observe que o terceiro argumento é a cláusula where. O "?" é um espaço reservado. Será substituído pelo quarto argumento (id)
Esta é a solução mais limpa para atualizar uma linha específica.
fonte
Este código deve corrigir seu exemplo:
fonte
você pode tentar isso ...
fonte
espero que isso ajude você:
fonte
Você tenta este método de atualização no SQLite
fonte
use este código no seu DB `
para atualizar em seu sample.java, use este código
fonte
Pode tentar assim:
fonte
se sua linha sqlite tiver um ID exclusivo ou outro equivalente, você pode usar a cláusula where, como esta
fonte
"where _id = 1"
. A mudança também se reflete na minha pergunta.Para atualizações, é necessário chamar setTransactionSuccessfull para que as alterações sejam confirmadas da seguinte forma:
fonte
// Aqui está um código de exemplo simples para atualização
// Primeiro declare isso
// inicialize o seguinte
// código de atualização
// colocar ur id em vez do 'ponto de interrogação' é uma função na minha preferência compartilhada.
fonte
fonte
apenas tente assim
fonte
Método para atualização no SQLite:
fonte
fonte
fonte
basta fornecer rowId e tipo de dados que serão atualizados no ContentValues.
public void updateStatus (ID da string, status int) {
SQLiteDatabase db = this.getWritableDatabase ();
Dados de ContentValues = new ContentValues ();
data.put ("status", status);
db.update (TableName, dados, "columnName" + "=" + id, nulo);
}
fonte
Vou demonstrar com um exemplo completo
Crie seu banco de dados dessa maneira
Em seguida, crie uma classe para facilitar o CRUD -> Criar | Ler | Atualizar | Excluir
Agora vem a magia
você deve criar seu ProductsAdapter que deve retornar um CursorAdapter
Então, em uma atividade, basta chamar a função assim
fonte