Meu aplicativo possui dois botões, o primeiro botão é para excluir registros na entrada do usuário e o segundo é para excluir todos os registros. Mas quando desejo excluir dados, aparece a mensagem
"Seu aplicativo foi interrompido à força".
Por favor, verifique meu código e me dê algumas sugestões.
public void deleteAll()
{
//SQLiteDatabase db = this.getWritableDatabase();
// db.delete(TABLE_NAME,null,null);
//db.execSQL("delete * from"+ TABLE_NAME);
db.execSQL("TRUNCATE table" + TABLE_NAME);
db.close();
}
e
public void delete(String id)
{
String[] args={id};
getWritableDatabase().delete("texts", "_ID=?", args);
}
Mas mostra o seguinte erro de gato de log.
03-07 15:57:07.143: ERROR/AndroidRuntime(287): Uncaught handler: thread main exiting due to uncaught exception
03-07 15:57:07.153: ERROR/AndroidRuntime(287): java.lang.NullPointerException
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.example.MySQLiteHelper.delete(MySQLiteHelper.java:163)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.example.Settings$4.onClick(Settings.java:94)
-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.os.Looper.loop(Looper.java:123)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.app.ActivityThread.main(ActivityThread.java:4203)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at java.lang.reflect.Method.invokeNative(Native Method)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at java.lang.reflect.Method.invoke(Method.java:521)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at dalvik.system.NativeStart.main(Native Method)
Respostas:
Você perdeu um espaço:
db.execSQL("delete * from " + TABLE_NAME);
Também não há necessidade de incluir
*
, a consulta correta é:fonte
*
.ou, se você deseja que a função retorne a contagem de linhas excluídas ,
Na documentação do método de exclusão SQLiteDatabase :
fonte
Para excluir todas as linhas da tabela, você pode usar:
fonte
SQLite não suporta o
TRUNCATE
comando. Você deve usar o que tentou na linha anterior:PS Você pode otimizar seu programa usando a mesma instância da conexão com o banco de dados para todas as suas consultas ao banco de dados fornecido, em vez de criar uma nova para cada consulta.
fonte
Não é necessário usar a função "execute". O código a seguir funcionou para mim :::
fonte
esse trabalho pra mim :)
fonte
tente este código para excluir todos os dados de uma tabela.
fonte
rawQuery()
sozinho não funciona, pois não executa o SQL.use a função de exclusão do Sqlit com os dois últimos parâmetros nulos.
fonte
Apenas escreva
ou
fonte
Eu uso essa classe para lidar com banco de dados. Espero que ajude alguém no futuro.
Feliz codificação.
}
Uso:
fonte
fonte
Isso está funcionando para mim. A diferença está aqui com execSQL e rawQuery. O rawQuery é o mais usado no caso de pesquisa e o execSQL usado principalmente nas operações de aplicação.
fonte
fonte
Pode ser útil.
fonte
este método exclui todos os dados do banco de dados
fonte
Eu tenho uma função que funciona para mim no Unity (em conjunto com o banco de dados SQLite).
código C #:
fonte
Aqui está uma maneira simples de excluir:
Aqui
whereClause
é opcional, a passagem de null excluirá todas as linhas da tabela. A função de exclusão retornará o número da linha afetada sewhereClause
aprovada, caso contrário, retornará 0.fonte
você pode usar dois métodos diferentes para excluir ou qualquer consulta no sqlite android
primeiro método é
segundo método
use qualquer método para seu caso de uso
fonte
Usando SQLite_NET_PCL v1.6.292 no VStudio - muitos documentos e comentários por aí parecem desatualizados (eu acho).
Para excluir todos os registros
fonte