Pequena ajuda

2 respostas
L

Olá pessoal,estou iniciando em java entao ainda tenho mtas dúvidas ,estou com uma pequena dúvida com um erro q esta dando em um prog meu aqui, é o seguinte, estou tentando inserir alguns valores em uma tabela q criei mas estou recebendo o seguinte erro :
“Column count doesn’t match value count at row 1” .

vou postar aki o codigo do progarama.Não estrahem a falta de nexo do código, é pq eu to reaproveitando um outro código q eu ja tinha feito ai so estou mudando algumas coisas.O erro aparece na opcao pra inserir o valor , a opcao para listar esta normal e pra deletar eu ainda nao pude testar.
VlW!!

import java.sql.*;

public class TesteBD {

public static void main(String[] args) throws Exception {
	Class.forName("com.mysql.jdbc.Driver");
	Connection c = DriverManager.getConnection(
		"jdbc:mysql://localhost/Prim_Bd" , "Hassad" , "ariana");
	Statement st = c.createStatement();
	int opt = -1;
	while(opt!=0){
		System.out.println("1-Incluir\t2-Excluir\t3-Listar\0-Sair");
		opt = ControleTeclado.obterInteiro();
		switch(opt){
			case 1:
			    System.out.print("Codigo:");
				int cod = ControleTeclado.obterInteiro();
				System.out.print("V_entrada:");
				int v_ent = ControleTeclado.obterInteiro();
				System.out.print("Valor_saida:");
				int v_saida = ControleTeclado.obterInteiro();
				st.executeUpdate("INSERT INTO conta VALUES("+
				   				 cod+",'"+v_ent+"',"+v_saida+")");
			break;
			case 2:
			    System.out.print("Codigo:");
				int codx = ControleTeclado.obterInteiro();
				st.executeUpdate("DELETE FROM conta WHERE COD="+codx);
			break;
			case 3:
				ResultSet r = st.executeQuery("SELECT * FROM conta");
				System.out.println("Codigo\tNome\tQuantidade");
				while(r.next())
					System.out.println(r.getInt("cod")+"\t"+
					       r.getString("nome")+"\t"+r.getInt("qtd"));
				r.close();						
			break;
		}
	}
	st.close();
	c.close();
}

}

2 Respostas

A

Alo Luiz_Hassad,

Isso significa que tua tabela tem mais colunas do que aquelas que estás a preencher.
No query tens de especificar quais as colunas em que vais inserir os dados
ex:

st.executeUpdate("INSERT INTO conta (colunadocodigo, colunadov_ent, colunadov_saida)  VALUES("+cod+",'"+v_ent+"',"+v_saida+")");
L

Hummmm, e tem msm heheh.É pq eu to acostumado com o PL/SQL e lá msm qnd sobra alguma coluna à preencher eu não recebo nenhuma msg de erro.

Vlw ai pela ajuda!

Criado 12 de outubro de 2006
Ultima resposta 12 de out. de 2006
Respostas 2
Participantes 2