none
Como tratar um erro ou uma exceção quando não retorna linhas no Dataset.tables exibindo uma mensagem pro usuário que não há registros? RRS feed

  • Pergunta

  • Boa Noite,

    Estou com um problema, meio bobo, não to sabendo tratar um "erro" no Dataset quando não retorna linhas. Pois quando não há linhas queria retornar uma mensagem pro usuário: "Registro não encontrado". Por que toda vez que ele não encontra o registro ele da erro de exceção no código.

    Meu código está assim:    

    conexaoDataSet = new DataSet();
                conexao = new MySqlConnection("SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;");
    
    
                try
                {
    
                    conexao.Open();
    
                    string sql = "select COUNT(a.Cd_Consulta) AS cs from procedimentos d inner join consultas a on d.cd_procedimento = a.cd_procedimento  where d.cd_procedimento='" + comboBox2.SelectedValue + "' and Dataa between  '" + dateTimePicker1.Value.Date.ToString("yyyy-MM-dd") + "' and '" + dateTimePicker2.Value.Date.ToString("yyyy-MM-dd") + "%' group by d.Cd_Procedimento";
                    MySqlDataAdapter conexaoAdpter = new MySqlDataAdapter(sql, conexao);
                    conexaoAdpter.Fill(conexaoDataSet, "consultas");
                    label9.Text = Convert.ToString(conexaoDataSet.Tables["consultas"].Rows[0]["cs"]);
    
    
                }
                catch (MySqlException ex)
                {
    
                    MessageBox.Show("Erro de conexão" + ex);
    
                }
    
                conexao.Close(); 
    
    Alguém pode me ajudar?
    quarta-feira, 23 de novembro de 2016 22:14

Respostas

  • Olá,

    Tenta dessa forma inicialmente:

                conexaoDataSet = new DataSet();
                conexao = new MySqlConnection("SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;");
    
                try
                {
                    conexao.Open();
    
                    string sql = "select COUNT(a.Cd_Consulta) AS cs from procedimentos d inner join consultas a on d.cd_procedimento = a.cd_procedimento  where d.cd_procedimento='" + comboBox2.SelectedValue + "' and Dataa between  '" + dateTimePicker1.Value.Date.ToString("yyyy-MM-dd") + "' and '" + dateTimePicker2.Value.Date.ToString("yyyy-MM-dd") + "%' group by d.Cd_Procedimento";
                    MySqlDataAdapter conexaoAdpter = new MySqlDataAdapter(sql, conexao);
                    conexaoAdpter.Fill(conexaoDataSet, "consultas");
                    if (conexaoDataSet.Tables["consultas"] != null && conexaoDataSet.Tables["consultas"].Rows.Count > 0)
                       label9.Text = Convert.ToString(conexaoDataSet.Tables["consultas"].Rows[0]["cs"]);
                    else
                       MessageBox.Show("Registro não encontrado");
                }
                catch (MySqlException ex)
                {
                    MessageBox.Show("Erro de conexão" + ex);
                }
                conexao.Close(); 

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco



    quarta-feira, 23 de novembro de 2016 22:20
  • Ótimo Andressa!

    Não esqueça de marcar a resposta para fechar o tópico!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 16:45
    • Não Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 16:45
    • Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 16:45
    quinta-feira, 24 de novembro de 2016 02:11

Todas as Respostas

  • Olá,

    Tenta dessa forma inicialmente:

                conexaoDataSet = new DataSet();
                conexao = new MySqlConnection("SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;");
    
                try
                {
                    conexao.Open();
    
                    string sql = "select COUNT(a.Cd_Consulta) AS cs from procedimentos d inner join consultas a on d.cd_procedimento = a.cd_procedimento  where d.cd_procedimento='" + comboBox2.SelectedValue + "' and Dataa between  '" + dateTimePicker1.Value.Date.ToString("yyyy-MM-dd") + "' and '" + dateTimePicker2.Value.Date.ToString("yyyy-MM-dd") + "%' group by d.Cd_Procedimento";
                    MySqlDataAdapter conexaoAdpter = new MySqlDataAdapter(sql, conexao);
                    conexaoAdpter.Fill(conexaoDataSet, "consultas");
                    if (conexaoDataSet.Tables["consultas"] != null && conexaoDataSet.Tables["consultas"].Rows.Count > 0)
                       label9.Text = Convert.ToString(conexaoDataSet.Tables["consultas"].Rows[0]["cs"]);
                    else
                       MessageBox.Show("Registro não encontrado");
                }
                catch (MySqlException ex)
                {
                    MessageBox.Show("Erro de conexão" + ex);
                }
                conexao.Close(); 

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco



    quarta-feira, 23 de novembro de 2016 22:20
  • Hey 

    Funcionou!!!

    Thanks jovem! :)

    quarta-feira, 23 de novembro de 2016 23:11
  • Ótimo Andressa!

    Não esqueça de marcar a resposta para fechar o tópico!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    • Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 16:45
    • Não Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 16:45
    • Marcado como Resposta Andressa.s sexta-feira, 25 de novembro de 2016 16:45
    quinta-feira, 24 de novembro de 2016 02:11