none
UPDATE no Banco de Dados RRS feed

  • Pergunta

  • Estou com problemas no projeto da faculdade, nao consigo enxergar o erro nesse codigo:

    private void btnAlterar_Click(object sender, EventArgs e)
            {
                if (txtNome.Text == "" || txtLocal.Text == "" || txtTipo.Text == "" || txtGolpe.Text == "")
                           {
                               MessageBox.Show("Campos sem preenchimento!");
                               return;
                           }
                try
                {
                    ConexaoPokedex.Open();
                }
                catch
                {
                    MessageBox.Show("Impossível estabelecer conexão");
                }
              
                if (ConexaoPokedex.State == ConnectionState.Open)
                {
                    //Se estiver aberta insere os dados na BD
                    MySqlCommand comando = new MySqlCommand("UPDATE Pokemon "+
                    "   SET id        =    " + txtNro.Text  + " "+
                    "     , nome        =  '" + txtNome.Text + "' " +
                    "     , tipo        = '" + txtTipo.Text  + "' "+
                    "     , localizacao = '" + txtLocal.Text + "' "+
                    "     , golpe       = '" + txtGolpe.Text + "' "+ 
                    " WHERE id        =  " + id, ConexaoPokedex);
                    comando.BeginExecuteNonQuery();
                    MessageBox.Show("Alterado com sucesso!");
                }
                ConexaoPokedex.Close();
                atualizaDGV();
            }

    sábado, 18 de junho de 2016 06:47

Respostas

  • Arnaldo, na sua condição WHERE id = id, de onde está vindo os dados?

    Esta variável ID está recebendo o valor do TextBox?

    Abraços.

    ______________________________________________________

    Onde tem Set ID está errado, teria que ser:

    MySqlCommand comando = new MySqlCommand("UPDATE Pokemon "+
                    "   SET nome        =  '" + txtNome.Text + "' " +
                    "     , tipo        = '" + txtTipo.Text  + "' "+
                    "     , localizacao = '" + txtLocal.Text + "' "+
                    "     , golpe       = '" + txtGolpe.Text + "' "+ 
                    " WHERE id        =  " + txtNro.Text  + " , ConexaoPokedex);

    O update não atualiza o ID e sim os outros campos. A condição seria se o ID for igual ao informado, ok?

    Abraços.




    domingo, 19 de junho de 2016 01:58
  • Valeu Lailson, Salvou a Patria! 

    Obrigado!

    domingo, 19 de junho de 2016 16:25

Todas as Respostas

  • Bom dia Arnaldo,

    troque o trecho

    comando.BeginExecuteNonQuery();

    por

    comando.ExecuteNonQuery();

    e veja o que acontece.

    Já li sobre conexão assíncrona e o Begin é utilizado para isso. 

    Abraços.

    sábado, 18 de junho de 2016 14:31
  • Boa Noite Lailson, agradeço sua ajuda, mas também não funcionou, ele nao faz o update no banco! Caso tenha outra informação, será bem vinda!

    Até mais!!!

    sábado, 18 de junho de 2016 23:27
  • Arnaldo, na sua condição WHERE id = id, de onde está vindo os dados?

    Esta variável ID está recebendo o valor do TextBox?

    Abraços.

    ______________________________________________________

    Onde tem Set ID está errado, teria que ser:

    MySqlCommand comando = new MySqlCommand("UPDATE Pokemon "+
                    "   SET nome        =  '" + txtNome.Text + "' " +
                    "     , tipo        = '" + txtTipo.Text  + "' "+
                    "     , localizacao = '" + txtLocal.Text + "' "+
                    "     , golpe       = '" + txtGolpe.Text + "' "+ 
                    " WHERE id        =  " + txtNro.Text  + " , ConexaoPokedex);

    O update não atualiza o ID e sim os outros campos. A condição seria se o ID for igual ao informado, ok?

    Abraços.




    domingo, 19 de junho de 2016 01:58
  • Valeu Lailson, Salvou a Patria! 

    Obrigado!

    domingo, 19 de junho de 2016 16:25