[Android] Erro ao inserir no banco

[code]
public void gravarRegistro(){
try{
String sql = “INSERT INTO teste (nome, idade, altura, peso, sexo) values(’”
+etNome.getText().toString()+"’,’"
+etIdade.getText().toString()+"’,’"
+etAltura.getText().toString()+"’,’"
+etPeso.getText().toString()+"’,’"
+etSexo.getText().toString()+"’)";

		bancoDados.execSQL(sql);
		
	}
	catch (Exception erro){
		mensagemExibir("PORRRAAAAAA", "Erro ao gravar dados!");
	}
}[/code]

quando executo cai na mensagem de erro aguem pode me ajudar?

Diga-nos a mensagem de erro.

cabei de descobrir uma coisa… eu tirei os parametros passado e puis tudo valores manuais… e gravou… o q sera q esta errado na minha sintaxe?

qual Exception o console exibe? :evil:

achei o problema mas nao sei como corrigir

[code]
String sql = “INSERT INTO teste2 (nome, idade, altura, peso, sexo) values (’”
+etNome.getText().toString()+"’,’"
+etIdade.getText().toString()+"’,’"
+etAltura.getText().toString()+"’,’"
+etPeso.getText().toString()+"’,’"
+etSexo.getText().toString()+"’)";

		bancoDados.execSQL(sql);
		mensagemExibir("Aviso banco", "Dados gravados com sucesso!");[/code]

meu codigo de inserçao é este,
na minha tela tem campos “editText com o tipo do input TEXT” e "editText com o tipo do input DECIMAL"
se eu anular o tipo decimal grava certim… mas quando ativo o DECIMAL… da erro … como posso corrigir?

os campos decimal é o etAltura, etPeso, etIdade
acho q deve ter alguma forma de converte

Nesse forum, coloque a tag [ANDROID] no titulo quando for perguntar algo relacionado.

E também evite titulos com “me ajudem”.

Dessa vez eu editei para voce.

Não sei se é este seu problema, mas verifique aí:

Possivelmente o seu DECIMAL.toString retorna alguma string com vírgula e a string SQL final tem mais “valores” do que colunas, causando o erro.

Exemplo:

nome = “joão”;
decimal = 1.2;

INSERT INTO TABELA(campo1, campo2)
values (nome.toString, decimal.toString);

Possivelmente sua string SQL final fique assim:

INSERT INTO TABELA(campo1, campo2)
values (joao, 1,2);

A linha “values” possue 3 valores, gerando o erro (pois só existem 2 colunas).

No seu caso talvez usar um replace no decimal.toString resolva.
Obs: Talvez exista uma solução mais elegante. :lol:

Aconselho você a ultilizar o SQLiteDatabase.insert que e menos sujeito a erros.