Estou tendo dificuldades pra fazer essa função em meu sistema, acredito eu que a lógica está OK mas como fazer a função no SelectedIndexChanged está bem errada.
Em meu ComboBox já consigo listar o que está cadastrado em meu banco de dados:
C# Java Python
Quando eu clicar na opção C# eu quero que o valor relacionado a C# que eu tenho cadastrado no meu banco de dados “Servico” seja setado no TextBox valor. Entenderam? E a mesma coisa pros outros serviços que eu venha cadastrar futuramente no sistema.
Segue os códigos:
public List<Servicos> ListarServicoComboBoxRelacionado()
{
try
{
AbrirConexao();
Servicos servico = new Servicos();
cmd = new SqlCommand("SELECT * FROM Servicos WHERE servico = @servico", con);
cmd.Parameters.AddWithValue("@servico", servico.Servico);
dr = cmd.ExecuteReader();
List<Servicos> addServico = new List<Servicos>();
while(dr.Read())
{
servico.Servico = Convert.ToString(dr["servico"]);
servico.Valor = Convert.ToDecimal(dr["valor"]);
addServico.Add(servico);
}
return addServico;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
FecharConexao();
}
}
E no evento de SelectedIndexChanged (acredito que seja essa a ação) não consigo implementar.
Fiz algumas alterações mas não sei se está correto.
public bool ListarServicoComboBoxRelacionado(string servico, decimal valor)
{
try
{
AbrirConexao();
cmd = new SqlCommand("SELECT * FROM Servicos WHERE servico = @servico", con);
cmd.Parameters.AddWithValue("@servico", servico);
dr = cmd.ExecuteReader();
if (dr.Read())
{
servico = Convert.ToString(dr["servico"]);
valor = Convert.ToDecimal(dr["valor"]);
}
else
{
return false;
}
return true;
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
FecharConexao();
}
}
SelectedIndexChanged
private void cbServico_SelectedIndexChanged(object sender, EventArgs e)
{
decimal vlr = Convert.ToDecimal(tbValor.Text);**//Erro gerado:A cadeia de caracteres de entrada não estava em um formato correto.**
string srv = cbServico.SelectedItem.ToString();
Persistencia acao = new Persistencia();
Servicos servico = new Servicos();
acao.ListarServicoComboBoxRelacionado(srv,vlr);
}
Eu fazendo isto ele vai simplesmente copiar o texto que está no combobox pro outro textbox.
Eu não quero isso… eu quero que ele pegue o valor que é do texto C#, do texto Java e etc…
eu também quebrei a cabeça com isso kkkk.
é só você seguir a mesma lógica, só vai acrescentar na sua consulta sql o que você quer que apareça e os textbox que você quer exibir o resultado.