Usuário com melhor resposta
Colocar Dados do Banco(MySql) com Inner Join em uma Label C#

Pergunta
-
Boa Noite;
Estou fazendo um select e quero que retorne apenas um valor na label:
Exemplo: 330. Pois ele está fazendo a soma de uma coluna. Só que estou utilizando um inner join no comando select.
Já testei esse código em datagridview e esta funcionando, só que quando passo pra label está dando errado, pois ele não reconhece a coluna cd_procedimento.
Meu codigo esta assim:
conexaoDataSet = new DataSet(); conexao = new MySqlConnection("SERVER=localhost;DATABASE=teste;UID=root;PASSWORD=;"); try { conexao.Open(); string sql = "select SUM(d.Preco) 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"); //Está dando erro aqui nesta linha, não reconhece a coluna "cd_procedimento" label8.Text = Convert.ToString(conexaoDataSet.Tables["consultas"].Rows[0]["cd_procedimento"]); } catch (MySqlException ex) { MessageBox.Show("Erro de conexão" + ex); } conexao.Close();
Alguém pode me ajudar?!
- Editado Andressa.s segunda-feira, 14 de novembro de 2016 01:34
Respostas
-
Olá Andressa,
A resposta do André acredito que resolva o seu problema. Só uma sugestão que gostaria de lhe dar.
Sempre que for trabalhar com parâmetros nas suas consultas, procure não realizar concatenações para evitar o Sql Injection nas suas aplicações.
Segue um link para lhe ajudar no entendimento.
http://zetcode.com/db/mysqlcsharptutorial/
Espero ter ajudado.
Klayton Gomes (Software Architecture) MCP/MCTS/MCAD/MCPD/MCSD Solution Developer
- Sugerido como Resposta Juliano Nunes Silva Oliveira terça-feira, 15 de novembro de 2016 11:09
- Marcado como Resposta AndreAlvesLimaModerator terça-feira, 15 de novembro de 2016 14:58
-
Olá,
Acredito que esteja faltando definir o nome da coluna no seu comando SQL, tenta dessa forma:
string sql = "select SUM(d.Preco) AS cd_procedimentos 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";
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- Sugerido como Resposta Juliano Nunes Silva Oliveira terça-feira, 15 de novembro de 2016 11:09
- Marcado como Resposta AndreAlvesLimaModerator terça-feira, 15 de novembro de 2016 14:58
Todas as Respostas
-
Olá,
Acredito que esteja faltando definir o nome da coluna no seu comando SQL, tenta dessa forma:
string sql = "select SUM(d.Preco) AS cd_procedimentos 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";
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- Sugerido como Resposta Juliano Nunes Silva Oliveira terça-feira, 15 de novembro de 2016 11:09
- Marcado como Resposta AndreAlvesLimaModerator terça-feira, 15 de novembro de 2016 14:58
-
Olá Andressa,
A resposta do André acredito que resolva o seu problema. Só uma sugestão que gostaria de lhe dar.
Sempre que for trabalhar com parâmetros nas suas consultas, procure não realizar concatenações para evitar o Sql Injection nas suas aplicações.
Segue um link para lhe ajudar no entendimento.
http://zetcode.com/db/mysqlcsharptutorial/
Espero ter ajudado.
Klayton Gomes (Software Architecture) MCP/MCTS/MCAD/MCPD/MCSD Solution Developer
- Sugerido como Resposta Juliano Nunes Silva Oliveira terça-feira, 15 de novembro de 2016 11:09
- Marcado como Resposta AndreAlvesLimaModerator terça-feira, 15 de novembro de 2016 14:58
-
Boa Noite,
Funcionou....Era exatamente isso!
Muito Obrigada!!!
Só mais uma pergunta, como eu faria pra exibir uma mensagem de erro caso não exista nenhum registro na lista, já tentei um if e else só que está dando erro...se puderem ajudar mais essa, agradeceria.
:)
- Editado Andressa.s segunda-feira, 14 de novembro de 2016 22:28
-
-
Tente fazer uma verificação desse tipo para saber se tem linhas ou não:
if (conexaoDataSet.Tables["consultas"].Rows.Count > 0) { //TEM LINHAS } else MessageBox.Show("Não há dados!");
Não esqueça de marcar a resposta que te ajudou para finalizar 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 -