none
Insert no bd Mysql com if e else RRS feed

  • Pergunta

  • Pessoal Boa tarde.

    Sou novo na área e estou aprendendo if e else com insert.Estou tentando fazer algo assim

    1 º preciso verificar se um campo no banco de dados está null

    Se sim : faz um insert no banco

    Senão faz um insert em outro campo mas da mesma tabela

    Estou tentando fazer desta forma , mas nao vai

    {
                if (e.KeyCode == Keys.Enter)
                   
                    {

                    string conn = ConfigurationManager.ConnectionStrings["MySQLConnectionString"].ToString();
                    MySqlConnection conexao = new MySqlConnection(conn);

                    try
                    {

                        conexao.Open();
                        MySqlCommand comando = new MySqlCommand();
                        comando = conexao.CreateCommand();

                        

                        comando.CommandText = "UPDATE recebimentofiscal SET hora_real_fiscal  = CASE WHEN hora_real_fiscal IS NULL THEN '" + DateTime.Now.ToString("hh:mm:ss") + "' ELSE hora_real_fiscal end where lcase(transportadora) = lcase('" + txtpesquisa.Text + "');";
                        int valorRetorno = comando.ExecuteNonQuery();
                        txtpesquisa.Text = string.Empty;


                    }
                    catch (MySqlException msqle)
                    {

                        MessageBox.Show("Erro de acesso ao banco de dados" + msqle.Message, "Erro");

                    }
                    finally
                    {

                        conexao.Close();


                    }

                }

    sábado, 12 de maio de 2018 14:48

Respostas

  • Olá, para que a sua condição IF/ELSE funcione corretamente você precisa declarar essa condição na sintaxe do código.

     try
    {
     conexao.Open();
     MySqlCommand comando = new MySqlCommand();
     comando = conexao.CreateCommand();
     
     // 
     Realize primeiro um SELECT na tabela procurando pelo campo NULO
     comando.CommandText = "SELECT * FROM RECEBIMENTOFISCAL WHERE HORA_REAL_FISCAL IS NULL";
     var RESULTADO = comando.ExecuteNonQuery();
     
     //CONDICAO ONDE O CAMPO É NULO
     if(RESULTADO)
     {
      comando.CommandText = "UPDATE recebimentofiscal SET hora_real_fiscal = '" + DateTime.Now.ToString("hh:mm:ss") + ";
            comando.ExecuteNonQuery();
     }
     else
     {
      comando.CommandText = "UPDATE recebimentofiscal SET hora_real_fiscal = '" + txtpesquisa.Text + "';
            comando.ExecuteNonQuery();
     }
     
     txtpesquisa.Text = string.Empty;
    }
    catch (MySqlException msqle)
    {
     MessageBox.Show("Erro de acesso ao banco de dados" + msqle.Message, "Erro");
    }
    finally
    {
     conexao.Close();
    }


    Leandro de Agostini MCTS - Web Application, Framework 4

    domingo, 13 de maio de 2018 00:00

Todas as Respostas

  • Olá, para que a sua condição IF/ELSE funcione corretamente você precisa declarar essa condição na sintaxe do código.

     try
    {
     conexao.Open();
     MySqlCommand comando = new MySqlCommand();
     comando = conexao.CreateCommand();
     
     // 
     Realize primeiro um SELECT na tabela procurando pelo campo NULO
     comando.CommandText = "SELECT * FROM RECEBIMENTOFISCAL WHERE HORA_REAL_FISCAL IS NULL";
     var RESULTADO = comando.ExecuteNonQuery();
     
     //CONDICAO ONDE O CAMPO É NULO
     if(RESULTADO)
     {
      comando.CommandText = "UPDATE recebimentofiscal SET hora_real_fiscal = '" + DateTime.Now.ToString("hh:mm:ss") + ";
            comando.ExecuteNonQuery();
     }
     else
     {
      comando.CommandText = "UPDATE recebimentofiscal SET hora_real_fiscal = '" + txtpesquisa.Text + "';
            comando.ExecuteNonQuery();
     }
     
     txtpesquisa.Text = string.Empty;
    }
    catch (MySqlException msqle)
    {
     MessageBox.Show("Erro de acesso ao banco de dados" + msqle.Message, "Erro");
    }
    finally
    {
     conexao.Close();
    }


    Leandro de Agostini MCTS - Web Application, Framework 4

    domingo, 13 de maio de 2018 00:00
  • Boa tarde,

    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.

    quarta-feira, 30 de maio de 2018 22:29
    Moderador