I'm trying to insert and recover data from a table in SQLite in Android. But, I'm getting this error:
android.database.sqlite.SQLiteException: table produto has no column named cor (code 1): , while compiling: INSERT INTO produto(cor,tamanho,idproduto,material,descricao,valor,classificacao) VALUES (?,?,?,?,?,?,?)
Here is my "Produto" basecolumn:
public static abstract class ProdutosDAO implements BaseColumns {
public final static String TABLE_NAME = "produto";
public final static String COLUMN_NAME_ID_PRODUTO = "idproduto";
public final static String COLUMN_NAME_DESCRICAO = "descricao";
public final static String COLUMN_NAME_VALOR = "valor";
public final static String COLUMN_NAME_CLASSIFICACAO = "classificacao";
public final static String COLUMN_NAME_MATERIAL = "material";
public final static String COLUMN_NAME_TAMANHO = "tamanho";
public final static String COLUMN_NAME_COR = "cor";
public final static String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS "+ ProdutosDAO.TABLE_NAME + " (" +
ProdutosDAO._ID + PRIMARY_KEY +
ProdutosDAO.COLUMN_NAME_ID_PRODUTO + INTEGER_TYPE + UNIQUE_INDEX + COMMA_SEP +
ProdutosDAO.COLUMN_NAME_DESCRICAO + VARCHAR_TYPE + "150)"+ COMMA_SEP +
ProdutosDAO.COLUMN_NAME_VALOR + DOUBLE_TYPE + COMMA_SEP +
ProdutosDAO.COLUMN_NAME_CLASSIFICACAO + INTEGER_TYPE + COMMA_SEP +
ProdutosDAO.COLUMN_NAME_MATERIAL + INTEGER_TYPE + COMMA_SEP +
ProdutosDAO.COLUMN_NAME_TAMANHO + INTEGER_TYPE + COMMA_SEP +
ProdutosDAO.COLUMN_NAME_COR + INTEGER_TYPE + ");";
public final static String DROP_TABLE = "DROP TABLE IF EXISTS " + ProdutosDAO.TABLE_NAME;
public final static String[] ALL_COLUMNS = {ProdutosDAO._ID,
COLUMN_NAME_ID_PRODUTO,
COLUMN_NAME_DESCRICAO,
COLUMN_NAME_VALOR,
COLUMN_NAME_CLASSIFICACAO,
COLUMN_NAME_MATERIAL,
COLUMN_NAME_TAMANHO,
COLUMN_NAME_COR
};
}
I have some static variables to types too:
// Types definition
public final static String VARCHAR_TYPE = " VARCHAR(";
public final static String INTEGER_TYPE = " INTEGER";
public final static String DOUBLE_TYPE = " DOUBLE";
To to create this table I'm just using:
db.execSQL(SisLojaBanco.ProdutosDAO.CREATE_TABLE);
Well, I'm completly lost, and don't know whats happening.
Can someone help me please?
Thanks a lot,
Mathias
I'm trying to insert values this way:
ContentValues values = new ContentValues();
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_ID_PRODUTO, "1");
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_DESCRICAO, "'Barbel Titanio 2mm Preto Com Brilho'");
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_VALOR, 50.0);
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_CLASSIFICACAO, "4"); // Barbel
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_MATERIAL, "1"); // Titanio
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_TAMANHO, "1"); // 2mm
values.put(SisLojaBanco.ProdutosDAO.COLUMN_NAME_COR, "3"); // Preto
save(values);