Android - Ayuda para borrar tabla sqlite

 
Vista:
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Ayuda para borrar tabla sqlite

Publicado por Luis (97 intervenciones) el 18/09/2016 01:29:09
Hola amigos haber si me podeis ayudar, he creado una base de datos llamada Prueba la cual contiene una tabla llamada datos que contiene nombre y apellido.

He estado buscando informacion y todos los metodos que he encontrado no acaban de funcionar no se que estoy haciendo mal, les agradeceria que me echasen una mano.

Desde la activity llamo al metodo borrarhistorial que esta en la clase DB extends SQLiteOpenHelper de esta manera:


1
2
3
4
5
6
7
8
Borrarhistorial.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                DB db = new DB(getApplicationContext(),null,null,1);
                String mensaje =db.borrarHistorial();
                Toast.makeText(getApplicationContext(),mensaje,Toast.LENGTH_SHORT).show();
            }
        });


Y esta es la clase DB donde no consigo que se elimine el contenido de la tabla datos quiero borrar la tabla y luego crearla de nuevo con esta sentencia.

db.execSQL("create table datos(nombre text, apellido text)");

Que parece sencillo pero me tengo que estar dejando algo por el camino ya que se me cierra la aplicacion al ejecutar.
Este es el codigo de la clase DB

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
import java.util.ArrayList;
 
public class DB extends SQLiteOpenHelper {
 
    SQLiteDatabase db;
 
    public DB(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, "Prueba", factory, 1);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL("create table datos(nombre text, apellido text)");
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
 
 
    //  metodo para borrar un usuario especifico ( Funciona bien )
 
    public String eliminar(String Nombre){
        String mensaje ="";
        SQLiteDatabase database = this.getWritableDatabase();
        int cantidad =database.delete("datos", "nombre='" + Nombre + "'", null);
        if (cantidad !=0){
            mensaje="Eliminado Correctamente";
 
        }
        else{
            mensaje = "No existe";
        }
        database.close();
        return mensaje;
    }
 
    //       ESTE ES EL METODO PARA BORRAR EL HISTORIAL ( Falta algo )
 
    public String borrarHistorial(){
        SQLiteDatabase database = this.getWritableDatabase();
        String mensaje ="";
 
        Cursor c = database.rawQuery("SELECT * FROM datos", null);
        //  Cursor c=db.rawQuery("SELECT * FROM student", null);
        if(c.getCount()==0)
        {
            mensaje = "Historial historial completamente vacio";
            return mensaje;
        }
        else {
            //    SQLiteDatabase db = this.getWritableDatabase();
            // db.delete(TABLE_NAME,null,null);
            //db.execSQL("delete * from"+ datos);
            //  db.delete(db, null, null);
            //   String selectQuery = "DELETE FROM datos ";
            //   Cursor cursor = this.getReadableDatabase().rawQuery(selectQuery, null);
            //   database.delete("datos", "nombre='" , null);
            // db.delete(TABLE_NAME, null, null);
            //db.execSQL("TRUNCATE table" + datos);
 
            db.execSQL("drop table if exists datos");
            db.execSQL("create table datos(nombre text, apellido text)");
 
            mensaje = "Historial Eliminado";
 
        }
            db.close();
        return mensaje;
    }
 
}

Muchas gracias por haberse tomado la molestia de leer este post y se agradece cualquier ayuda.
Saludos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Ayuda para borrar tabla sqlite

Publicado por cordobesensh (4 intervenciones) el 20/09/2016 08:06:04
prueba usar flyvpn en tu android asi modificar tu ip a otros paises
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Ayuda para borrar tabla sqlite

Publicado por Luis (97 intervenciones) el 20/09/2016 10:31:27
Gracias por responder pero no entiendo que me dices
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 400
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Ayuda para borrar tabla sqlite

Publicado por Francisco (335 intervenciones) el 20/09/2016 18:13:40
Es raro porque si te va en el emulador tendría que funcionar en el móvil
a no ser que tengas la base de datos en modo local,por eso te funciona desde el emulador y no desde el movil ya que la base no la encuentra.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Ayuda para borrar tabla sqlite

Publicado por Luis (97 intervenciones) el 21/09/2016 01:23:27
Pido perdón Francisco, creo que no me expliqué bien.

E la sintaxis del método Borrarhistorial de la clase DB el que no se crear correctamente ya que me pierdo entre comas y paréntesis.
Ya ve la cantidad que he probado y no lo consigo.

El método que tengo asignado al button ese creo que si lo tengo bien ya que si la base está vacía me retorna el mensaje pero si contiene algo no lo borra se cierra la aplicación.
Es el método Borrarhistorial de la clase DB el que no se que hago mal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Francisco
Val: 400
Oro
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Ayuda para borrar tabla sqlite

Publicado por Francisco (335 intervenciones) el 21/09/2016 13:08:49
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Borrarhistorial.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       eliminarRegistros();
    }
});
 
 
public void eliminarRegistros(){
 
      DB db = new DB(this,"Prueba", null; 1);// Debes poner el nombre de la base de datos
      SQLiteDatabase c=db.getWritableDatabase();
      c.execSQL("Delete * from  datos");
     Toast.makeText(getApplicationContext(),"Registros eliminados",Toast.LENGTH_SHORT).show();
 
     db.close();
 
}


Espero que te sirva de orientacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 197
Plata
Ha mantenido su posición en Android (en relación al último mes)
Gráfica de Android

Ayuda para borrar tabla sqlite

Publicado por Luis (97 intervenciones) el 24/09/2016 20:06:43
Mil gracias francisco ya por fin pude eliminar todos los registros de la tabla,me costo entender lo que me pedia el metodo;

database.delete(table, whereClause, whereArgs)"

aqui pongo la explicacion para los que empiezan como yo;

que nos pide el nombre de la tabla "table", el registro a borrar "whereClause" que tomaremos como referencia su id y como ultimo parámetro "whereArgs" los valores a borrar.

y yo lo puse de esta forma.

Abilito la base de datos para poder editar
1
SQLiteDatabase database = this.getWritableDatabase();

y luego le digo que de la base de datos database borre la tabla datos y con null null no le paso ningun parametro.

1
database.delete("datos",null,null);

Y cerramos la base de datos
1
database.close();

_____________________________

Lo que no se y me gustaria que alguien me pudiese explicar, porque no funciona este metodo.

1
database.execSQL("Delete * from  datos");

Que le estamos diciendo que borre todos los datos de la tabla datos.

Para que funcione este metodo he de borrar el * y queda de esta manera

1
2
3
4
SQLiteDatabase database = this.getWritableDatabase();
 
        database.execSQL("Delete from  datos");
        database.close();
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar