Boa tarde pessoal, estou com um problema na inserção de dados. Enfim, tenho duas tabelas(categoria e lancamento), lancamento eu tenho um foreign key que é id_categoria. Veja o logcat
03-28 15:12:53.562: E/SQLiteDatabase(536): Error inserting data=28/03/2013 id_categoria=android.widget.SimpleCursorAdapter@4134cb30 observacao=teste valor=3 descricao=vale tipo=D
03-28 15:12:53.562: E/SQLiteDatabase(536): android.database.sqlite.SQLiteException: table lancamento has no column named id_categoria: , while compiling: INSERT INTO lancamento(data,id_categoria,observacao,valor,descricao,tipo) VALUES (?,?,?,?,?,?)
Minha classe openhelpe, onde tenho a criação das tabelas:
// TABELA LANÇAMENTO VAI TER RELACIONAMENTO COM A TABELA CATEGORIA
String lancamento = "Create table lancamento"
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT,"
+ "tipo TEXT,"
+ "descricao TEXT,"
+ "valor TEXT,"
+ "data TEXT,"
+ "observacao TEXT,"
+ "id_categoria INTEGER,"
+ "FOREIGN KEY (id_categoria) REFERENCES categoria(_id);";
db.execSQL(lancamento);
// TABELA CATEGORIA
String categoria = "CREATE TABLE categoria"
+ "(_id INTEGER PRIMARY KEY AUTOINCREMENT, "
+ "descricao TEXT NOT NULL);";
db.execSQL(categoria);
Depois meu botao salvar:
RadioButton rbReceita = (RadioButton) findViewById(R.id.rbReceita);
RadioButton rbDespesas = (RadioButton) findViewById(R.id.rbDespesas);
EditText edtDescricao = (EditText) findViewById(R.id.edtDescricao);
Spinner spnCategoria = (Spinner) findViewById(R.id.spnCategoria);
EditText edtValor = (EditText) findViewById(R.id.edtValor);
EditText edtData = (EditText) findViewById(R.id.edtData);
EditText edtObservacao = (EditText) findViewById(R.id.edtObservacao);
// RECEITA
RadioButton RadioButton = null;
if (RadioButton == rbReceita) {
String descricao = edtDescricao.getText().toString();
String categoria = spnCategoria.getAdapter().toString();
// Integer.parseInt(spnCategoria.getAdapter().toString());
String valor = edtValor.getText().toString();
String data = edtData.getText().toString();
String observacao = edtObservacao.getText().toString();
String tipo = "R";
Dao dao = new Dao(this);
dao.inserirReceita(tipo, descricao, categoria, valor, data,
observacao);
} else { // DESPESAS
String descricao = edtDescricao.getText().toString();
String categoria = spnCategoria.getAdapter().toString();
// Integer categoria =
// Integer.parseInt(spnCategoria.getAdapter().toString());
String valor = edtValor.getText().toString();
String data = edtData.getText().toString();
String observacao = edtObservacao.getText().toString();
String tipo = "D";
Dao dao = new Dao(this);
dao.inserirDespesas(tipo, descricao, categoria, valor, data,
observacao);
}
Por fim meu metodo de inserção:
// INSERIR RECEITA R
public void inserirReceita(String tipo, String descricao, String id_categoria,
String valor, String data, String observacao) {
ContentValues valorDescricao = new ContentValues();
valorDescricao.put("tipo", tipo);
valorDescricao.put("descricao", descricao);
valorDescricao.put("id_categoria", id_categoria);
valorDescricao.put("valor", valor);
valorDescricao.put("data", data);
valorDescricao.put("observacao", observacao);
abrir();
ControleFinanceiro.insert("lancamento", null, valorDescricao);
fechar();
}
Obs.: O mesmo que está para inserirReceita está para despesa tb!
Enfim, o ocorre o erro e acredito que seja por causa do id_categoria, conforme mostra no log.
Aguardo por uma ajuda e desde já agradeço pela atenção.