这是我的代码,以及它发生的地方。
PolideportivoDAO.java
if (init){
//CategoriaSocial categoria = null;
List<CategoriaSocial> listaDeCategorias = new Vector<CategoriaSocial>();
//Categoria Social
if (CategoriaDAO.getInstance(context).obtenerTodosLasCategorias().size() == 0){
listaDeCategorias.add(CategoriaDAO.getInstance(context).crearCategoriaNueva("1", "Miembro A",
"Miembro con todos los privilegios, pase diario y uso de la piscina"));
listaDeCategorias.add(CategoriaDAO.getInstance(context).crearCategoriaNueva("2", "Miembro B",
"Permiso para uso de las instalaciones tres veces a la semana"));
listaDeCategorias.add(CategoriaDAO.getInstance(context).crearCategoriaNueva("3", "Miembro C",
"Permiso para uso de las instalaciones solo fin de semana de 8 am a 16 pm"));
}
CategoriaDAO.java
public List<CategoriaSocial> obtenerTodosLasCategorias() {
List<CategoriaSocial> categorias = new Vector<CategoriaSocial>();
Cursor cursor = db.query(ICategoriaSQLiteHelper.TABLA_CATEGORIA_SOCIAL,
ICategoriaSQLiteHelper.columnasCategoria, null, null, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
CategoriaSocial categoria = crearCategoriaDesdeCursor(cursor);
categorias.add(categoria);
cursor.moveToNext();
}
cursor.close();
return categorias;
}
ICategoriaSQLiteHelper.java
package com.example.polideportivo1;
public class ICategoriaSQLiteHelper{
public static final String TABLA_CATEGORIA_SOCIAL = "Categoria";
public static final String COLUMNA_ID = "id";
public static final String COLUMNA_CODIGO = "codigo";
public static final String COLUMNA_CATEGORIA = "nombre";
public static final String COLUMNA_DESCRIPCION = "descripcion";
public static final String[] columnasCategoria =
{ ICategoriaSQLiteHelper.COLUMNA_ID,
ICategoriaSQLiteHelper.COLUMNA_CODIGO,
ICategoriaSQLiteHelper.COLUMNA_CATEGORIA,
ICategoriaSQLiteHelper.COLUMNA_DESCRIPCION,
};
public static String TABLA_CATEGORIA_SOCIAL_CREACION = "CREATE TABLE "
+ TABLA_CATEGORIA_SOCIAL + "(" + COLUMNA_ID + " INTEGER primary key autoincrement, "
+ COLUMNA_CODIGO + " TEXT not null unique,"
+ COLUMNA_CATEGORIA + " TEXT not null,"
+ COLUMNA_DESCRIPCION + " TEXT"
+ ");";
}
答案 0 :(得分:1)
错误信息很清楚。
您正在尝试访问数据库中不存在的字段。
答案 1 :(得分:1)
您发布的代码示例不足以查看异常发生的位置,因此我认为它发生在此处:
Cursor cursor = db.query(ICategoriaSQLiteHelper.TABLA_CATEGORIA_SOCIAL ...
并且1)表存在2)它不包含名为"codigo"
的列(ICategoriaSQLiteHelper.COLUMNA_CODIGO
的值)。
您是不是试图将代码运行一段时间前创建的旧表Categoria
,而当时不包含列codigo
?
如果是这样的话,删除旧表并创建一个新表 - 这次使用上面示例中的TABLA_CATEGORIA_SOCIAL_CREACION
- 应该可以解决问题。