Inserção de dados e Carregar ListView

Boa tarde Pessoal! Estou com dificuldade na hora que gravo um item ele não recarrega minha listview e da erro de insert.

Este é o erro do Insert, ao clicar no botão salvar:
02-21 15:33:01.376: E/SQLiteDatabase(601): Error inserting categoria=teste
02-21 15:33:01.376: E/SQLiteDatabase(601): android.database.sqlite.SQLiteException: table categoria has no column named categoria: , while compiling: INSERT INTO categoria(categoria) VALUES (?)

Essa parte é a parte da minha list:

private Dao dao = new Dao(this);
	private String[] categorias;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.categoria);
		categorias = getResources().getStringArray(R.array.categorias);
		Arrays.sort(categorias);
		ListView list = (ListView) findViewById(R.id.listView1);				
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, getResources()
						.getStringArray(R.array.categorias));		

		// setando o adapter na listview
		list.setAdapter(adapter);		
		list.setOnItemClickListener(new OnItemClickListener() {
			// serve para clicar uma unica vez na lista e abri o menu
			public void onItemClick(AdapterView<?> arg0, View v, int arg2,
					long arg3) {
				openContextMenu(v);

			}
		});
		registerForContextMenu(list);

Essa parte é do botão salvar:

final Button btnSalvar = (Button) findViewById(R.id.btnSalvar);
		btnSalvar.setOnClickListener(new OnClickListener() {
			public void onClick(View v) {
				// TODO Auto-generated method stub				
				botao_salvarcategoria(btnSalvar);
			}
		});
	}
	public void botao_salvarcategoria(View v) {
		EditText edtCategoria = (EditText) findViewById(R.id.edtCategoria);
		String valorCategoria = edtCategoria.getText().toString();
		Dao dao = new Dao(this);
		dao.inserircategoria(valorCategoria);
		finish();

E essa parte é da Dao, onde estou inserindo:

public void inserircategoria(String categoria) {		
			ContentValues valorCategoria = new ContentValues();
			valorCategoria.put("categoria", categoria);
			abrir();
			ControleFinanceiro.insert("categoria", null, valorCategoria);		
		                fechar();
	}

E por fim criação da tabela:

String categoria = "Create table categoria" +
		"(_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
		"descricao TEXT);";
                                db.execSQL(categoria);

Desde já agreço pela atenção!

att,
Andreia

Tente fazer algo assim:

sql = "INSERT INTO table1 (field1, field2) " + 
"VALUES ('" + field_one + "', '" + field_two + "')";

Está dando erro por conta desta linha

valorCategoria.put("categoria", categoria);

Vc não tem uma coluna categoria, vc tem ID e DESCRICAO

Ainda não deu certo!

Como ficou o seu método de persistência.

Entendi, mas como deveria fazer, estou fazendo aqui mas ainda continua dando erro!

Desde já agradeço pela atenção.

att,
Andreia

enfim, seria + ou - isso:

public void inserircategoria(String descricao) {

		//try {
			ContentValues valorCategoria = new ContentValues();
			//valorCategoria.put("id", id);
			valorCategoria.put("descricao", descricao);
			abrir();
			ControleFinanceiro.insert("categoria", null, valorCategoria);

		//} catch (Exception e) {
		//	Log.e(categoria, "Erro :" + e.getMessage());
		//}
		fechar();
	}

e eu posso fazer isso:

 db.execSQL("INSERT INTO categoria(_id, descricao) VALUES(''),('')");     

Mas, continua o mesmo erro …pra melhor entender no meu banco eu já tenho algumas categorias pré-definidas, referente ao values/categorias.xml, veja:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string-array name="categorias">
        <item> Alimentacao</item>
        <item> Combustivel</item>
        <item> Saude</item>
        <item> Acessorios</item>
        <item> Diversao</item>
        <item> Festas</item>
        <item> Lazer</item>
        <item> Salario</item>
        <item> Transporte</item>
        <item> Outros</item>                
    </string-array>            
</resources>

att,
Andreia

Vc tentou algo assim?

db.execSQL(“INSERT INTO categoria(descricao) VALUES (‘Festas’)”);

O que retorna quando vc dá um select nesta tabela?

select _id, descricao from categoria;

Me traz as categorias que já tenho!

_id	descricao
1	Alimentacao
2	Combustivel
3	Saude
4	Acessorios
5	Diversao
6	Festas
7	Lazer
8	Salario
9	Transporte
10	Outros

att,
Andreia

Tentou desta forma?

db.execSQL(“INSERT INTO categoria(descricao) VALUES (‘Trabalho’)”);

Sim …mas nada acontece!Caramba que estranho! Já olhei …revisei alguns trablahos que tenho da facul segue o memso procedimento … não dá pra entender!

att,

Sei lá, tente escrever outra coisa na query, algo maluco para ver se apresenta o mesmo erro, acho que seu Eclipse não está compilando a classe corretamente.

[quote]String categoria = “Create table categoria” +
"(_id INTEGER PRIMARY KEY AUTOINCREMENT, " +
“descricao TEXT);”;
db.execSQL(categoria); [/quote]

Não sei você percebeu,mas na sua tabela categoria não existe o campo categoria.

[quote]02-21 15:33:01.376: E/SQLiteDatabase(601): Error inserting categoria=teste
02-21 15:33:01.376: E/SQLiteDatabase(601): android.database.sqlite.SQLiteException: table categoria has no column named categoria: , while compiling: INSERT INTO categoria(categoria) VALUES (?) [/quote]
E o erro também é muito descritivo: “table categoria has no column named categoria”,não sei como anda o seu inglês,mas isso é muito simples de se entender.

CONSEGUI RESOLVER!POSTO DEPOIS COM O CODIGO ATUALIZADO!

att,
Andreia