problema combobox
Olá
Sou iniciante, e estou procurando fazer a coisa da forma mais correta
sendo assim tenho seguinte codigo
*******************************************
conexao.open();
NpgsqlCommand comando = new NpgsqlCommand("select mid_codigo codigo,mid_nome nome from midias ", conexao.getconexao());
NpgsqlDataReader dr = comando.ExecuteReader();
DataTable dtmidia = new DataTable();
dtmidia.Load(dr);
dllmidias.DataSource = dtmidia;
dllmidias.ValueMember = "codigo";
dllmidias.DisplayMember = "nome";
*****************************************************************
ou seja, funciona
mas penso, se eu tenho as classes, correto nao seria o caso e fazer algo do tipo
******************************************************************
ENmidias midias = new ENmidias();
listaMidias = RNmidias.Todas(midias);
dllmidias.DataSource = listaMidias;
dllmidias.ValueMember = Convert.ToString(listaMidias[0].codigo);
dllmidias.DisplayMember = listaMidias[0].nome;
**********************************************************************
Ai me da um erro :
Cannot bind to the new display member.
Parameter name: newDisplayMember
Ocorre que DisplayMember tras o nome corretamente, o erro se da no ValueMember que nao carrega o codigo ...Nao consigo resolver
Desde ja agradeço
Sou iniciante, e estou procurando fazer a coisa da forma mais correta
sendo assim tenho seguinte codigo
*******************************************
conexao.open();
NpgsqlCommand comando = new NpgsqlCommand("select mid_codigo codigo,mid_nome nome from midias ", conexao.getconexao());
NpgsqlDataReader dr = comando.ExecuteReader();
DataTable dtmidia = new DataTable();
dtmidia.Load(dr);
dllmidias.DataSource = dtmidia;
dllmidias.ValueMember = "codigo";
dllmidias.DisplayMember = "nome";
*****************************************************************
ou seja, funciona
mas penso, se eu tenho as classes, correto nao seria o caso e fazer algo do tipo
******************************************************************
ENmidias midias = new ENmidias();
listaMidias = RNmidias.Todas(midias);
dllmidias.DataSource = listaMidias;
dllmidias.ValueMember = Convert.ToString(listaMidias[0].codigo);
dllmidias.DisplayMember = listaMidias[0].nome;
**********************************************************************
Ai me da um erro :
Cannot bind to the new display member.
Parameter name: newDisplayMember
Ocorre que DisplayMember tras o nome corretamente, o erro se da no ValueMember que nao carrega o codigo ...Nao consigo resolver
Desde ja agradeço
Jorge Meneses
Curtidas 0
Respostas
Tiago
30/09/2012
Bom dia Jorge,
Bom eu fiz pela DropDownlist e acredito que por ela,seja mais simples.
Espero ter ajudado
Bom eu fiz pela DropDownlist e acredito que por ela,seja mais simples.
DropDownList1.DataTextField = "";// Nome que voce deseja listar pela dropdownlist DropDownList1.DataValueField = "";// Código referenciado aos itens da dropdownlist
Espero ter ajudado
GOSTEI 0
Jorge Meneses
30/09/2012
Opa
Tiago
Bahh valeu, mas é que é no Windows Forms dai nao tem dropdownlist rsrrs
Tiago
Bahh valeu, mas é que é no Windows Forms dai nao tem dropdownlist rsrrs
GOSTEI 0
Tiago
30/09/2012
Opa, desculpe é que sou acostumado a trabalhar com projetos web.
Fiz um teste no windows forms e ficou da seguinte forma:
Pelo que vejo a sintaxe está correta, sera que nessa linha :
A referencia estaria correta? por exemplo a posição no vetor... seria interessante usar o debug para poder confirmar.
Fiz um teste no windows forms e ficou da seguinte forma:
comboBox1.DisplayMember = "Nome_campo"; comboBox1.ValueMember = "Codigo_campo";
Pelo que vejo a sintaxe está correta, sera que nessa linha :
dllmidias.ValueMember = Convert.ToString(listaMidias[0].codigo);
A referencia estaria correta? por exemplo a posição no vetor... seria interessante usar o debug para poder confirmar.
GOSTEI 0
Jorge Meneses
30/09/2012
Bahh eu dei uma de loko e fiz uma mescla da coisa e funcionou rsrs
vai saber rsrss
Valeu Tiago pelo help
ENmidias midias = new ENmidias();
listaMidias = RNmidias.Todas(midias);
dllmidias.DataSource = listaMidias;
dllmidias.ValueMember = "codigo";
dllmidias.DisplayMember = "nome";
vai saber rsrss
Valeu Tiago pelo help
ENmidias midias = new ENmidias();
listaMidias = RNmidias.Todas(midias);
dllmidias.DataSource = listaMidias;
dllmidias.ValueMember = "codigo";
dllmidias.DisplayMember = "nome";
GOSTEI 0
Tiago
30/09/2012
Por nada rapaz...
GOSTEI 0
Edson Oliveira
30/09/2012
Jorge Meneses tem outro jeito que tb funciona, eu gosto de usar mais esse jeito, os dois modos funciona sem problemas.
Client client1 = new Client(1, "Client 1"); Client client2 = new Client(2, "Client 2"); Client client3 = new Client(3, "Client 3"); listBox1.Items.Add(new ItemList(client1.Name, client1)); listBox1.Items.Add(new ItemList(client2.Name, client2)); listBox1.Items.Add(new ItemList(client3.Name, client3)); listBox1.SelectedIndex = 0; ItemList oItemList = (ItemList)listBox1.SelectedItem; Client oClient = (Client)oItemList.Value; public class ItemList { public string Text { get; set; } public object Value { get; set; } public ItemList() { } public ItemList(string text, object value) { this.Text = text; this.Value = value; } public override string ToString() { return this.Text; } } public class Client { public int Id { get; set; } public string Name { get; set; } public Client(int id, string name) { this.Id = id; this.Name = name; } }
GOSTEI 0