problema con las Bases de datos SQLite
Publicado por Jose Ignacio Gutierrez (1 intervención) el 27/06/2017 18:20:53
llevo casi tres semanas con un problema con la persistencia de los datos de las bases de datos, no consiguo que se me mantengan los datos de SQLite,
tengo una activity en una aplicacion en la cual accedo a una base de datos, funciona todo correcto, creo la base de datos, creo elementos, los modifico, los borro, los edito...., pero al salir de la activity en la que estoy trabajando, paso a otras opciones de la aplicacion o entro y salgo de la aplicacione y cuando vuelvo a las bases es como si se borrara el fichero de base de datos y se pierde toda la informacion, volviendose a ejecutar el oncreate del DBbaseHelper y vuelven a aparecer los mismos articulos que creo en onCreate.
Estoy bastante desesperado porque no puedo avanzar en la aplicacion y llevo 2 semanas buscando informacion y consultando y nadie me responde.
un saludo y gracias de antemano
Este es el codigo:
------------------------------------------------------Clase DBHELPER
y este es el codigo para la creacion de un articulo en la tabal articulos
tengo una activity en una aplicacion en la cual accedo a una base de datos, funciona todo correcto, creo la base de datos, creo elementos, los modifico, los borro, los edito...., pero al salir de la activity en la que estoy trabajando, paso a otras opciones de la aplicacion o entro y salgo de la aplicacione y cuando vuelvo a las bases es como si se borrara el fichero de base de datos y se pierde toda la informacion, volviendose a ejecutar el oncreate del DBbaseHelper y vuelven a aparecer los mismos articulos que creo en onCreate.
Estoy bastante desesperado porque no puedo avanzar en la aplicacion y llevo 2 semanas buscando informacion y consultando y nadie me responde.
un saludo y gracias de antemano
Este es el codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ArticuloContract {
public static abstract class ArticuloEntry implements android.provider.BaseColumns {
public static final String TABLE_NAME ="articulo";
public static final String ID = "id";
public static final String NOMBRE = "nombre";
public static final String CODIGOEAN= "codigoEAN";
public static final String DESCRIPCION = "descripcion";
public static final String ESTADO = "estado";
public static final String AVATAR_URI = "avatar_uri";
}
}
------------------------------------------------------Clase DBHELPER
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
public class BaseDatosDBHelper extends SQLiteOpenHelper {
public static final int DATABASE_VERSION = 1;
// private static String DB_PATH="";
private static String DB_PATH="";
// /data/data/android.app.keytosl.com.company/databases/";
public static final String DATABASE_NAME ="dat.sqlite";
private android.content.Context myContext;
private SQLiteDatabase myDataBase;
public BaseDatosDBHelper(Context context, String databaseName, Object o, int databaseVersion) {
super(context, DB_PATH+DATABASE_NAME, null, DATABASE_VERSION);
this.myContext=context;
}
@Override
public void onCreate( SQLiteDatabase db) {
db.execSQL( "CREATE TABLE " + ArticuloEntry.TABLE_NAME + " ("
+ ArticuloEntry._ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ ArticuloEntry.ID + " TEXT NOT NULL,"
+ ArticuloEntry.NOMBRE + " TEXT NOT NULL,"
+ ArticuloEntry.CODIGOEAN + " TEXT ,"
+ ArticuloEntry.DESCRIPCION + " TEXT ,"
+ ArticuloEntry.ESTADO + " TEXT ,"
+ ArticuloEntry.AVATAR_URI + " TEXT,"
+ "UNIQUE (" + ArticuloEntry.ID + "))" );
Articulos art1 = new Articulos( "Chirimolla","54545455","Origen almeria","25,54","daniel_samper.jpg" );
Articulos art2 = new Articulos( "Melon","55555554", "Manzana Fuji","30,10","daniel_samper.jpg");
Articulos art3 = new Articulos( "Sandia", "45454545","Freson de Huelva","27,50","lucia_aristizabal.jpg");
AccionBaseDatos.saveArticulo( myContext,art1 );
AccionBaseDatos.saveArticulo( myContext,art2 );
AccionBaseDatos.saveArticulo( myContext,art3 );
}
y este es el codigo para la creacion de un articulo en la tabal articulos
1
2
3
4
5
6
7
8
9
10
11
12
public class AccionBaseDatos {
public static void saveArticulo(Context context, Articulos articulos) {
BaseDatosDBHelper admin=new BaseDatosDBHelper(context,BaseDatosDBHelper.DATABASE_NAME,null, BaseDatosDBHelper.DATABASE_VERSION);
SQLiteDatabase db = admin.getWritableDatabase();
//introduce datos en la base de dato;
db.insert(
ArticuloContract.ArticuloEntry.TABLE_NAME,
null,
articulos.toContentValues());
db.close();
}
Valora esta pregunta
0