2013-12-20 82 views
-1

對不起,這個問題打擾你,但我真的不知道我自己的想法,如果你能幫助我,我將不勝感激。我試圖運行我的代碼,但每次它拋出我這個異常「沒有這樣的列:codigo」SQLite異常沒有這樣的列「codigo」

這是我的代碼,它發生的地方。

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" 

        + ");"; 

} 

回答

1

您發佈的代碼示例是不夠的,看看那裏的異常發生,所以我想它發生在這裏:

Cursor cursor = db.query(ICategoriaSQLiteHelper.TABLA_CATEGORIA_SOCIAL ... 

和1)表中存在2)它不包含指定的列"codigo"(值爲ICategoriaSQLiteHelper.COLUMNA_CODIGO)。

你不是想讓你的代碼運行在前一段時間創建的舊錶Categoria,那時那個列不包含codigo列嗎?

如果是這樣,那麼刪除舊錶格並創建一個新表格 - 這次使用TABLA_CATEGORIA_SOCIAL_CREACION就像上面的示例一樣 - 應該可以解決問題。

+1

我檢查與SQL管理員,是那,謝謝你的答案。 – user3042487

1

該錯誤消息說,它很清楚。

您正試圖訪問數據庫中不存在的字段。