Usuário com melhor resposta
Uma exceção de primeira chance do tipo 'MySql.Data.MySqlClient.MySqlException' ocorreu no MySql.Data.dll

Pergunta
-
Pessoal, estou com problemas nesse código, gostaria que me ajudassem em possíveis soluções. Quando rodo ele, aparece o erro "A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll". É um botão de CADASTRO, que quando o usuário digitar, deve inserir na tabela cliente o cpf, nome, e-mail e telefone do usuário digitado nas textboxes. O problema é que não está inserindo nas tabelas, aparecendo o erro "A first chance exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll". O comando CPFexiste funciona, mas comandoSQL não...
private void button1_Click(object sender, EventArgs e) { BancoDeDados bd = new BancoDeDados(); if (bd.Conectar("localhost", "livrariamc", "root", "") == false) { MessageBox.Show("Erro na conexão!"); return; } string cpf = this.textBox1.Text; string nome = this.textBox2.Text; string email = this.textBox3.Text; string telefone = this.textBox4.Text; string comandoSQL = "INSERT INTO cliente VALUES ('"+ cpf + "','" + nome + "','" + email + "','" + telefone + "');"; string CPFexiste = "SELECT Cpf FROM cliente WHERE Cpf=" + cpf + ";"; bd.ExecutarComando(CPFexiste); bool teste = bd.Leitor.Read(); if (teste == true) { MessageBox.Show("Esse CPF já existe!"); return; } else { bd.ExecutarComando(comandoSQL); MessageBox.Show("Usuário cadastrado com sucesso!"); this.Hide(); Form2 f2 = new Form2(); f2.Show(); } bd.Desconectar(); }
Já testei de tudo, achei que fosse problema no código SQL e nada. Estou conectando com o XAMPP e as tabelas em questão estão no localhost.
Respostas
-
Olá Milenacrdas,
Poderia substituir:
string CPFexiste = "SELECT Cpf FROM cliente WHERE Cpf=" + cpf + ";";
Por:
string CPFexiste = "SELECT Cpf FROM cliente WHERE Cpf='" + cpf + "';";
Em minha primeira analise acredito que só faltou o => ' em sua query, é muito provável que seja campo do tipo varchar. então consultas para campos varchar usamos o ' como um literal.
Abraços.
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Senior Developer C#
Development Leader at JAMSOFT Informática
Microsoft Certified Professional
Criador e Mantenedor do EntityFramework Core for Firebird
Contribuidor do EntityFramework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta Filipe B CastroModerator segunda-feira, 18 de dezembro de 2017 13:18
Todas as Respostas
-
Olá Milenacrdas,
Poderia substituir:
string CPFexiste = "SELECT Cpf FROM cliente WHERE Cpf=" + cpf + ";";
Por:
string CPFexiste = "SELECT Cpf FROM cliente WHERE Cpf='" + cpf + "';";
Em minha primeira analise acredito que só faltou o => ' em sua query, é muito provável que seja campo do tipo varchar. então consultas para campos varchar usamos o ' como um literal.
Abraços.
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
Rafael Almeida
Senior Developer C#
Development Leader at JAMSOFT Informática
Microsoft Certified Professional
Criador e Mantenedor do EntityFramework Core for Firebird
Contribuidor do EntityFramework Core
Email: ralms@ralms.net
Blog - GitHub - LinkedIn - Twitter- Marcado como Resposta Filipe B CastroModerator segunda-feira, 18 de dezembro de 2017 13:18
-
Bom dia,
Por falta de retorno essa thread está encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.