3votos

Duda de insercción de datos en SQLite desde Android

Que tal, aquí les molesto otra vez para preguntar como se hace la insercción de datos de tipo Booleanos a SQLite.
Solo aclaro que uso ORMDao para el manejo de SQLite.

UserORM box = new UserORM();
    box.setId(5L); 
    box.setNombre("Usuario");
    box.setUsuario("prueba");
    box.setTotal_score(1900);
    box.setContrasena("123qwe");
    box.setEsta_autenticado(); //-->Este dato es booleano ._.
    ModeloUsuarioORM.insertOrUpdate(jadeApplication.getAppContext(), box);

Y este es el mensaje de LogCat:

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jade.jade_log/com.jade.jade_log.MainActivity}: android.database.sqlite.SQLiteException: table USER_ORM has no column named ESTA_AUTENTICADO (code 1): , while compiling: INSERT OR REPLACE INTO USER_ORM ('_id','NOMBRE','TOTAL_SCORE','USUARIO','CONTRASENA','ESTA_AUTENTICADO') VALUES (?,?,?,?,?,?)

1 Respuesta

3votos

white Puntos75880

Sqlite no dispone de un tipo booleano, debes usar un integro

1: verdadero
0: falso

1.1 Boolean Datatype
SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

https://www.sqlite.org/datatype3.html

por lo que setEsta_autenticado() debe definir un integro ( 1 || 0 ) o el campo de la clase debe devolver un integro.

tu columna ESTA_AUTENTICADO puede ser de tipo TINYINT(1)

PD: para estar seguro, podrias agregar el codigo donde defines el campo Esta_autenticado de tu clase UserORM? y el código de setEsta_autenticado()?

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta