CAMPO CÓDIGO DO COMBO

ALANTB 29/10/2015 11:10:36
#453234
Olá, tenho uma rotina que carrega um combo com os nomes dos funcionários, conforme abaixo. Porém no mesmo form, mais adiante em um tabControl preciso exibir um total de valores em um campo textbox, selecionado em outra tabela de acordo com o código do funcionário selecionado no combobox. Só que no combo só aparece o nome. E no final da query SQL(inteira abaixo) pede o código: ......ConsultaCertificadoDescricao.codMatricula=[Ô] & txtMatriculaFunc. Preciso tirar esse txtMatricula e apontar para o combobox. Como ficaria isso???

private void carregaFunc()
{
Conexao conn = new Conexao();
DataTable dados = conn.Pesquisar([Ô]SELECT * FROM ConsultaMatricula ORDER BY Nome[Ô]);

comboFunc.Text = [Ô][Ô];
comboFunc.ValueMember = [Ô]codMatricula[Ô]; //O campo código da sua tabela vai aqui
comboFunc.DisplayMember = [Ô]Nome[Ô];//O que o usuário enxerga vai aqui
comboFunc.DataSource = dados; //O combo pega os dados recuperados
comboFunc.SelectedIndex = -1;
}

Seleção que preciso fazer:

Conexao conn = new Conexao();
DataTable dados = conn.Pesquisar([Ô]SELECT SUM ([nroPontos]) AS [Soma] From ConsultaCertificadoDescricao WHERE (((ConsultaCertificadoDescricao.nroPontos)=1))AND ConsultaCertificadoDescricao.codMatricula=[Ô] & txtMatriculaFunc); // esse & txtMatricula que preciso substituir pelo codMatricula do combo.
JOAOBENEVIDES 29/10/2015 11:34:08
#453239
minha funcao esta assim

AcessoBancodeDados.Abreconecao(con);
string sql = strSql;
Combo.DropDownStyle = ComboBoxStyle.DropDownList;
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

//coloque as definições na ordem abaixo
Combo.DisplayMember = Display;
Combo.ValueMember = Value;
Combo.DataSource = dt;

a sua esta faltando a informação Combo.ValueMember = Value; onde voce pega ela depois
com

combo.selectvalue

eu fiz uma funcao que eu busca minha funcao esta numa .cs

vou ti passar se ti achudar

public static void preencheComboBox(ComboBox Combo, string strSql, string Display, string Value)
{
using (SqlConnection con = AcessoBancodeDados.GetConnection())
{
try
{

AcessoBancodeDados.Abreconecao(con);
string sql = strSql;
Combo.DropDownStyle = ComboBoxStyle.DropDownList;
SqlCommand cmd = new SqlCommand(sql, con);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);

//coloque as definições na ordem abaixo
Combo.DisplayMember = Display;
Combo.ValueMember = Value;
Combo.DataSource = dt;



}
catch (Exception ex)
{
throw ex;
}
finally
{
AcessoBancodeDados.FechaConecao(con);
}
}
}

para chamar ele no formulario

funcao.preencheComboBox(CbStatus, [Ô]select valor,descricao from simano where tipo=27[Ô], [Ô]descricao[Ô], [Ô]valor[Ô]);

assim eu uso ela em todo meu projeto
JABA 29/10/2015 13:28:10
#453245
Tente assim:

Conexao conn = new Conexao();
DataTable dados = conn.Pesquisar([Ô]SELECT SUM ([nroPontos]) AS [Soma] From ConsultaCertificadoDescricao WHERE (((ConsultaCertificadoDescricao.nroPontos)=1))AND ConsultaCertificadoDescricao.codMatricula=[Ô] & [txt-color=#e80000]comboFunc.SelectedValue[/txt-color]);


ou

Conexao conn = new Conexao();
DataTable dados = conn.Pesquisar([Ô]SELECT SUM ([nroPontos]) AS [Soma] From ConsultaCertificadoDescricao WHERE (((ConsultaCertificadoDescricao.nroPontos)=1))AND ConsultaCertificadoDescricao.codMatricula=[Ô] & [txt-color=#e80000]comboFunc.SelectedIndex[/txt-color]);

ACCIOLLY 29/10/2015 14:12:47
#453246
Resposta escolhida
ALANTB perceba que no combobox antes de vc setar o DataTable [Ô]dados[Ô] como DataSource, é especificado que o ValueMember será o CodFunc e o DisplayMember será o NomeFunc. Portanto o comando que recupera o valor selecionado que é o CodFunc é:
ComboBox1.SelectedValue.ToString();

Mas para que seja realizada uma outra pesquisa ao selecionar um valor do ComboBox, é necessário faze-la dentro de um evento dele. Aconselho vc usar o SelecteIndexChanged

Té mais
Tópico encerrado , respostas não são mais permitidas