Array
(
)

Ajuda com combobox e label

Carlos Escudeiro
   - 19 nov 2012

Preciso de ajuda para pegar um valor no combobox que é populado pelos dados do banco e mostrar esses dados num label.
por exemplo seleciono um nome e mostro no label o codigo, endereço, etc...
eu to usando este codigo mas ele só me retorna o ultimo codigo gravado
#Código string sql = "Select * from tecnicos where tec_codigo ="+ comboBoxtecnico.SelectedIndex + "";
FbConnection cn = new FbConnection(Properties.Settings.Default.osControl);
FbCommand cmd = new FbCommand(sql, cn);
cmd.CommandType = CommandType.Text;
cn.Open();
FbDataReader reader = cmd.ExecuteReader();
try
{
while (reader.Read())
{
lbTecFone.Text = String.Format(reader.GetString(2).ToString());
lbTecCodigo.Text = String.Format(reader.GetString(0).ToString());

}
}
catch (FbException error)
{
throw error;
}
finally
{
cn.Close();
}
}

Robson Robsonalves.net
   - 19 nov 2012

prefira pegar o drpDowlist.SelectedValue, isso garante que o registro seja o value do Item selecionado.

Joel Rodrigues
   - 20 nov 2012

Olá, Carlos. A propriedade SelectedIndex, como o nome sugere, lhe dá acesso à posição do item selecionado na lista (0,1,2...) e não ao seu real valor. Como nosso amigo Robson falou, use a propriedade SelectedValue para acessar o valor desse item.
Boa sorte.

Carlos Escudeiro
   - 20 nov 2012

Resolvido meu problema. Tai o código que usei
#Códigopublic void CarregaDados()
{
using (FbConnection cn = new FbConnection(Properties.Settings.Default.osControl))
{
DataSet ds = new DataSet("Servicos");

FbDataAdapter daClientes = new FbDataAdapter("SELECT * FROM clientes", cn);
daClientes.TableMappings.Add("Table", "Clientes");
daClientes.Fill(ds);

FbDataAdapter daTecnicos = new FbDataAdapter("SELECT * FROM Tecnicos", cn);
daTecnicos.TableMappings.Add("Table", "tecnicos");
daTecnicos.Fill(ds);

dvManager = ds.DefaultViewManager;

comboBoxcliente.DataSource = dvManager;
comboBoxcliente.DisplayMember = "clientes.cli_nome";
comboBoxcliente.ValueMember = "clientes.cli_codigo";

comboBoxtecnico.DataSource = dvManager;
comboBoxtecnico.DisplayMember = "tecnicos.tec_nome";
comboBoxtecnico.ValueMember = "tecnicos.tec_codigo";

lbCliCodigo.DataBindings.Add("Text", dvManager, "clientes.cli_codigo");
lbEndereco.DataBindings.Add("Text", dvManager, "clientes.cli_endereco");
lbTecCodigo.DataBindings.Add("Text", dvManager, "tecnicos.tec_codigo");
}
}