none
não consigo o valor do id e do item pelo combo do grid RRS feed

  • Pergunta

  • Pôxa, não consegui, estou tentando mas não acerto...

    no grid tenho uma coluna combo, bounded, cujas propriedades são:

    name - nomePredio

    datapropertyname - nenhum

    datasource - prediobindingsource

    displaymember - nomePredio

    valuemember - idPredio

    pois bem, eu pego os valores assim:

    cmd.Parameters.AddWithValue("@instituicao", (dgv2.CurrentRow.Cells["nomePredio"].Value.ToString()));

     cmd.Parameters.AddWithValue("@idPredio", (dgv2.CurrentRow.Cells["nomePredio"].Value.ToString()));

    Aí isso não funciona. Como eu faço pro primeiro receber os itens que são listados e o segundo receba o value member, que é o ID?

    Já coloquei selected, displayed....

    grato

    terça-feira, 31 de janeiro de 2017 01:29

Respostas

  • Tente mudar o código um pouco, para isso:

    string display = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).EditedFormattedValue.ToString();
    string value = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).Value.ToString();


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    • Editado André SeccoMVP terça-feira, 31 de janeiro de 2017 16:56
    • Marcado como Resposta tracaja terça-feira, 31 de janeiro de 2017 18:14
    terça-feira, 31 de janeiro de 2017 16:56

Todas as Respostas

  • Olá,

    Já tentou assim?

    string display = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).DisplayMember;
    string value = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).ValueMember;
    
    cmd.Parameters.AddWithValue("@instituicao", display);
    cmd.Parameters.AddWithValue("@idPredio", value);



    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco



    terça-feira, 31 de janeiro de 2017 10:13
  • Existe uma coluna chamada "idPredio"? Tente desta maneira:

     cmd.Parameters.AddWithValue("@idPredio", (dgv2.CurrentRow.Cells["idPredio"].Value.ToString()));


    Att; Rafael

    terça-feira, 31 de janeiro de 2017 10:21
  • Vou testar, obrigado.
    terça-feira, 31 de janeiro de 2017 14:47
  • existe, mas ela vai ficar visible false, ou seja, o user nao vai entrar dados nela, ela só deve receber o id do predio selecionado na coluna combo...
    terça-feira, 31 de janeiro de 2017 14:49
  • string value = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).ValueMember;
    

    mudei ali pra value, certo? estavam os dois como display...

    o id foi certo, mas o nome predio não vai, se for displaymember ele reclama que o inputstring não está na forma correta, coloquei selected, ele devolve true...

    terça-feira, 31 de janeiro de 2017 16:05
  • Isso, acabei digitando errado.

    Em relação ao erro com o DisplayMember, o erro dá em qual linha? Nessa em que o valor é atribuído para variável?


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    terça-feira, 31 de janeiro de 2017 16:30
  • então, não sei, estou tentando achar isso...só tenho retorno da mensagem dizendo que o input string está no formato errado....usei aquele stop no código, deve ter algum outro erro que não estou vendo...

    mas ele funcionava, qdo eu tinha configurado o combobox com valuemember e displaymember = nomePredio, mas eu não consegui pegar o id...

    vou dar olhada mais atenta aqui pra ver se acho outro erro...acho que vou tirar os outros e deixar só ele....

    terça-feira, 31 de janeiro de 2017 16:35
  • ah, eu não preciso setar o datapropertyname? eu fiz uns testes e isso zoneia tudo se for errado, vou colocar o nomePredio nele não é?
    terça-feira, 31 de janeiro de 2017 16:37
  • Tente mudar o código um pouco, para isso:

    string display = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).EditedFormattedValue.ToString();
    string value = (dgv2.CurrentRow.Cells["nomePredio"] as DataGridViewComboBoxCell).Value.ToString();


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    • Editado André SeccoMVP terça-feira, 31 de janeiro de 2017 16:56
    • Marcado como Resposta tracaja terça-feira, 31 de janeiro de 2017 18:14
    terça-feira, 31 de janeiro de 2017 16:56
  • tá, é o id que tá causando aqui, tirei ele e daí inseriu, mas o displayMember mostra o nome da coluna da tabela, então não é ele, vou tentar esse aí de cima....
    terça-feira, 31 de janeiro de 2017 18:02
  • EditedFormattedValue

    esse pega o nome do predio corretamente...agora vou por de novo o id...

    terça-feira, 31 de janeiro de 2017 18:06
  • beleza brother, agora foi...

    muito obrigado.

    eu ia usar esse editeformatedvalue nunca....passei por ele qdo estava testando mas tinha certeza que não ia servir...

    vivendo e aprendendo....

    Até a próxima...

    terça-feira, 31 de janeiro de 2017 18:16