¿Error en consulta de SQLite? “no such table: Tabla (code 1): , while compiling: SELECT Campo from Tabla”

publicado por: Anonymous

Hola tengo una base de datos en SQLite, y estoy tratando de consultar un campo integer llamado Tipo para hacer una comparación con los case de un switch, pero me muestra el error:

no such table: Tabla (code 1): , while compiling: SELECT Campo from
Tabla

este es mi código:

Cursor cursor=null;
int x=0;
try {
bd=con.getReadableDatabase();
cursor= bd.rawQuery("SELECT Tipo from Tabla", null);//error
x=Integer.parseInt(cursor.getString(0));
}
catch (Exception e)
{
 e.printStackTrace();
}

SQLiteDatabase bd1 = con.getWritableDatabase();
ContentValues registro = new ContentValues();
if(cursor!=null) {
cursor.moveToFirst();
 switch (x) {
     case 1:
     ....
     break;
     }
 }
 ......

Base de datos

public class conexion extends SQLiteOpenHelper{

        public conexion(Context context, String name, SQLiteDatabase.CursorFactory factory, int version)
        {
            super(context, name, factory, version);
        }

        @Override
        public void onCreate(SQLiteDatabase sqLiteDatabase) {
           sqLiteDatabase.execSQL(Tabla.crearT);
        }
        @Override
        public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
            sqLiteDatabase.execSQL("drop table if exists " + Tabla.tabl);

           onCreate(sqLiteDatabase);
        }
    }

Tabla

public class Creditos_Gestiones {
    //constante campos tabla
    public static final String tabl="Tabla";
    public static final String id="id";
    public static final String Tipo="Tipo";
    public static final String User="User";
    public static final String Nombre="User";

    public static final String creaT = "create table Tabla" + tabl + "(" +id + " integer primary key autoincrement, " + Tipo +" integer, " + User + " integer, " +Nombre+ " text)";
}

solución

El problema no es en la consulta, se encuentra en el query que tienes definido para crear la tabla:

 public static final String creaT = "create table Tabla" + tabl + "(" +id + " integer primary key autoincrement, " + Tipo +" integer, " + User + " integer, " +Nombre+ " text)";

en realidad esto no esta creando la tabla por esa razón obtienes el error:

“no such table: Tabla (code 1): , while compiling: SELECT Campo from
Tabla”

debe ser:

 public static final String creaT = "create table " + tabl + " (" +id + " integer primary key autoincrement, " + Tipo +" integer, " + User + " integer, " +Nombre+ " text)";

Después de corregir el query debes eliminar la aplicación e instalala nuevamente o elimina el caché para evitar información que pudiera ser corrupta.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *