@Rimaria_Oliveira escreveu:
Olá! Tudo bem, pessoas?
Estou com o seguinte problema: Minha aplicação possui a table USUARIO em perfeito funcionamento com minha LoginActivity e a DAO correspondente, porém numa segunda activity (CriarItemActivity) e DAO (ItemDAO) tento acrescentar uma nova tabela ao banco e me vem o erro10-20 18:11:51.029 20286-20286/com.rimaria.apsoo.orcamentaria E/SQLiteLog: (1) no such table: ITEMCAD
10-20 18:11:51.110 20286-20286/com.rimaria.apsoo.orcamentaria E/SQLiteDatabase: Error inserting TAMANHO=2.0 VALOR=3.0 NOME=teste MILI=1.0
android.database.sqlite.SQLiteException: no such table: ITEMCAD (code 1): , while compiling: INSERT INTO ITEMCAD(TAMANHO,VALOR,NOME,MILI) VALUES (?,?,?,?)
...
at com.rimaria.apsoo.orcamentaria.dao.DaoItem.insereItem(DaoItem.java:68)
at com.rimaria.apsoo.orcamentaria.CriarItemActivity$1.onClick(CriarItemActivity.java:45)"O código do Helper:
public static final String NOME_BD = "APPorcamentaria"; public static final int VERSAO_BD = 1; private String scriptCreate, scriptDelete; public DBHelper(Context context, String NOME_BD, int VERSAO_BD, String scriptCreate, String scriptDelete) { super(context, NOME_BD, null, VERSAO_BD); this.scriptCreate = scriptCreate; this.scriptDelete = scriptDelete; } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(scriptCreate); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL(scriptDelete); onCreate(db); }
O código do DAO:
public class DaoItem { private String scriptSqlCreate = "CREATE TABLE ITEMCAD (ID INTEGER PRIMARY KEY AUTOINCREMENT, NOME VARCHAR(50) not null, MILI real, TAMANHO real not null, VALOR real not null);"; private String scriptSqlDelete = "DROP TABLE IF EXISTS ITEMCAD"; private static final String NOME_TABELA = "ITEMCAD"; private DBHelper dbHelper; private SQLiteDatabase db; private String[] getColunasTabUsuario(){ String[] UsuarioColunasTab = new String[]{"ID", "NOME", "MILI", "TAMANHO", "VALOR"}; return UsuarioColunasTab; } public DaoItem(Context ctx){ try { dbHelper = new DBHelper(ctx, DBHelper.NOME_BD, DBHelper.VERSAO_BD, scriptSqlCreate, scriptSqlDelete); if (db == null){ db = dbHelper.getWritableDatabase(); } }catch (Exception e){ Log.e("Erro: ", e.getMessage()); } } public void close(){ if(db != null){ if(!db.isOpen()){ db.close(); } } } public void dropTable(String TableName){ db.delete(TableName, null, null); } public ContentValues contentItem(ModelItem modelItem){ ContentValues values = new ContentValues(); values.put("NOME", modelItem.getItemName()); values.put("MILI", modelItem.getItemMilimetragem()); values.put("TAMANHO", modelItem.getItemTamanho()); values.put("VALOR", modelItem.getItemValor()); return values; } public long insereItem(ModelItem novoModelItem){ long id = 0; try{ ContentValues values = contentItem(novoModelItem); id = db.insert(NOME_TABELA, null, values); }catch (Exception e){ Log.e("Erro: ", e.getMessage()); } return id; }
O código da Activity:
bSaveItem.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { if(etNomeItem.getText().length()==0 || etMilimetragem.getText().length()==0 || etTamanho.getText().length()==0 || etValor.getText().length()==0){ Toast.makeText(getApplication(), "Todos os campos sao obrigatorios", Toast.LENGTH_SHORT).show(); }else{ item.setItemName(etNomeItem.getText().toString()); item.setItemMilimetragem(Double.parseDouble(etMilimetragem.getText().toString())); item.setItemTamanho(Double.parseDouble(etTamanho.getText().toString())); item.setItemValor(Double.parseDouble(etValor.getText().toString())); item.setItemId(objItem.insereItem(item)); Toast.makeText(getApplication(), "Item cadastrado. " + item.getItemId(), Toast.LENGTH_SHORT).show(); } } });
Espero que possam ajudar, estou a muito tempo tentando encontrar o erro.
Mensagens: 2
Participantes: 2