Usuário com melhor resposta
C# Formulário - Como faço média por litro com Km do veículo cadastrado no banco

Pergunta
-
Olá pessoal, estou postanto aqui porque sou iniciante e pesquisei muito e não encontrei uma solução que funcionasse pra mim. Estou criando um programa de controle de abastecimento com C# e SQL Server 2012, criei uma tabela Lancamento com os campos de id, numero_requisicao, km_veiculo, litros_abastecidos, valor_por_litro, valor_total e media_veiculo
então...
o problema é que não sei como fazer a média, pensei se é possível eu colocar o textbox ou label no Form que receba o km_veiculo maior cadastrado porém menor que o digitado no km_veiculoTextBox no formulado naquele momento. Tem algum comando SQL que eu possa colocar no evento keypress do km_veiculoTextBox que pegue esse km maior cadastrado que seja menor q o digitado pra mim poder assim calcular a média ou ultimo textbox?
Respostas
-
string sqlquery = "SELECT MAX(Km_Veiculo) FROM MediaTeste WHERE Km_Veiculo < " + kilometragem; SqlCommand command = new SqlCommand(sqlquery, connection); SqlDataReader sdr = command.ExecuteReader(); TextBox.Text = sdr.ToString();
Thais Oliveira
Analista Desenvolvedora- Marcado como Resposta Tom Comptom BR2 quarta-feira, 28 de novembro de 2012 17:57
-
Tom,
Um comando SQL que eu acho que possa te ajudar:
SELECT MAX(Km_Veiculo) FROM MediaTeste WHERE Km_Veiculo < 10
No qual você seleciona o maior valor da coluna Km_Veiculo da tablea MediaTeste onde Km_Veiculo é menor que 10. Esse 10, no caso, seria aquele no seu text box.- Editado ßruno quarta-feira, 28 de novembro de 2012 13:19
- Marcado como Resposta Tom Comptom BR2 quarta-feira, 28 de novembro de 2012 17:57
Todas as Respostas
-
-
Oi Thais, obrigado pela disposição :)
seria a média de kilometros por litros abastecidos
não seria a média geral, seria a média naquele momento do cadastro, por isso queria filtrar o km que ja estivesse cadastrado com o maior valor porém menor que o digitado no momento do cadastro no km_veiculoTextBox
-
Tom,
Um comando SQL que eu acho que possa te ajudar:
SELECT MAX(Km_Veiculo) FROM MediaTeste WHERE Km_Veiculo < 10
No qual você seleciona o maior valor da coluna Km_Veiculo da tablea MediaTeste onde Km_Veiculo é menor que 10. Esse 10, no caso, seria aquele no seu text box.- Editado ßruno quarta-feira, 28 de novembro de 2012 13:19
- Marcado como Resposta Tom Comptom BR2 quarta-feira, 28 de novembro de 2012 17:57
-
-
Tom,
Um comando SQL que eu acho que possa te ajudar:
SELECT MAX(Km_Veiculo) FROM MediaTeste WHERE Km_Veiculo < 10
No qual você seleciona o maior valor da coluna Km_Veiculo da tablea MediaTeste onde Km_Veiculo é menor que 10. Esse 10, no caso, seria aquele no seu text box.
O SELECT Max deu exatamente o que eu estava procurando :D só estou com dificuldades pra colocar esse valor do resultado em um textbox, mas ja resolveu o sql
obrigado,
==
Thais
Deu certo sim, só falta eu aprender a colocar o resultado no textbox e estou sem saber como.
- Editado Tom Comptom BR2 quarta-feira, 28 de novembro de 2012 14:57
-
string sqlquery = "SELECT MAX(Km_Veiculo) FROM MediaTeste WHERE Km_Veiculo < " + kilometragem; SqlCommand command = new SqlCommand(sqlquery, connection); SqlDataReader sdr = command.ExecuteReader(); TextBox.Text = sdr.ToString();
Thais Oliveira
Analista Desenvolvedora- Marcado como Resposta Tom Comptom BR2 quarta-feira, 28 de novembro de 2012 17:57
-
Adaptei como o código acima, mas devo estar deixando passar alguma coisa, pois está recebendo este resultado no kmtextbox ao invés do valor na tabela: System.Data.SqlClient.SqlDataReader
meu código ficou assim:
conexao.Open(); string sqlquery = "SELECT MAX(km_veiculo) FROM Lancamento WHERE km_veiculo < " + km_veiculoTextBox.Text; SqlCommand command = new SqlCommand(sqlquery, conexao); SqlDataReader sdr = command.ExecuteReader(); kmTextBox.Text = sdr.ToString(); conexao.Close();
-
-
Funcionou :D
Muito obrigado Bruno Curbani Goettmann e Thais Oliveira.