我试图在Android中的SQLite中从表中插入和恢复数据。但是,我收到了这个错误:
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 (?,?,?,?,?,?,?)
这是我的" 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
};
}
我也有类型的静态变量:
// Types definition
public final static String VARCHAR_TYPE = " VARCHAR(";
public final static String INTEGER_TYPE = " INTEGER";
public final static String DOUBLE_TYPE = " DOUBLE";
要创建此表,我只使用:
db.execSQL(SisLojaBanco.ProdutosDAO.CREATE_TABLE);
好吧,我完全迷失了,并且不知道发生了什么。
有人能帮助我吗?
非常感谢,
的Mathias
我试图以这种方式插入值:
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);