none
Uma exceção de primeira chance do tipo 'MySql.Data.MySqlClient.MySqlException' ocorreu no MySql.Data.dll RRS feed

  • 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. 

    quarta-feira, 13 de dezembro de 2017 18:12

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

    quarta-feira, 13 de dezembro de 2017 20:30

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

    quarta-feira, 13 de dezembro de 2017 20:30
  • 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.

    segunda-feira, 18 de dezembro de 2017 13:18
    Moderador