none
id de uma seleção do combo RRS feed

  • Pergunta

  • outra,

    preencho um combobox, pelo DB 1:

    SqlCommand cmd = new SqlCommand("SELECT idPredio, nomePredio FROM predio ORDER BY nomePredio", con);
                        SqlDataReader dr = cmd.ExecuteReader();
                        System.Data.DataTable table = new System.Data.DataTable();
                        table.Load(dr);
                        DataRow row = table.NewRow();
                       // row["nomePredio"] = "";
                        table.Rows.InsertAt(row, 0);

                        this.cbInstTrabalha.DataSource = table;
                        this.cbInstTrabalha.ValueMember = "idPredio";
                        this.cbInstTrabalha.DisplayMember = "nomePredio";

                        dr.Close();
                        dr.Dispose();

    beleza, aí seleciona o tal nomePredio, beleza, joga no DB 2, beleza...e o idPredio?

    achei que a coluna seria preenchida automaticamente, mas não, como eu faço pra jogar o id desse cara no DB 2, é um int., e de acordo com o preenchimento é valuemember, preciso que o id acompanhe a seleção e que vá pro banco pra eu fazer relacionamentos depois.... dá pra pegar o value member ou tem algum outro jeito, ou preciso adicionar a coluna id no combobox? ou posso pegar do datatable?

    passo pro banco assim: cmd.Parameters.AddWithValue("@instituicao", cbInstTrabalha.Text); mas não sei como escrever pra pegar o id...

    Grato

    segunda-feira, 30 de janeiro de 2017 01:28

Respostas

  • Bom dia, 

     pode usar o ValueMember:

    int idPredio = (int)suaCombobox.SelectedValue;
     Ou poderia usar a propriedade "SelectedItem" mas seria necessario realizar um cast, a opção mais simples seria ler o Valuemember conforme codigo acima.

    • Sugerido como Resposta Fabio Rosa segunda-feira, 30 de janeiro de 2017 10:49
    • Marcado como Resposta tracaja segunda-feira, 30 de janeiro de 2017 13:07
    segunda-feira, 30 de janeiro de 2017 10:07

Todas as Respostas

  • ou eu faço um where na hora do insert? pq os DBs estão relacionados e o idpredio é chave estrangeira.... vou tentar...
    segunda-feira, 30 de janeiro de 2017 01:42
  • Bom dia, 

     pode usar o ValueMember:

    int idPredio = (int)suaCombobox.SelectedValue;
     Ou poderia usar a propriedade "SelectedItem" mas seria necessario realizar um cast, a opção mais simples seria ler o Valuemember conforme codigo acima.

    • Sugerido como Resposta Fabio Rosa segunda-feira, 30 de janeiro de 2017 10:49
    • Marcado como Resposta tracaja segunda-feira, 30 de janeiro de 2017 13:07
    segunda-feira, 30 de janeiro de 2017 10:07
  • perfeito, muito grato!

    segunda-feira, 30 de janeiro de 2017 13:07
  • e quando eu faço a inserção do novo registro pelo grid?

    Inseri um combobox no grid, dos predios, o datasource é o prediobindingsource...aí eu não sei o que estou fazendo errado...

    Se eu colocar o valuemember como o ID, dá um erro quando seleciona, se eu colocar o nomePredio como value member e displaymember dá certo, aí não sei como preencher o id...

    estou gravando no banco assim:

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

    fiz do mesmo jeito pro id trocando o value por selected mas não deu certo...

                    cmd.Parameters.AddWithValue("@idPredio", (dgvCadColaborador2.CurrentRow.Cells["nomePredio"].Selected));

    vou fazer o inverso.....

    segunda-feira, 30 de janeiro de 2017 13:40
  • não deu certo....
    • Editado tracaja terça-feira, 31 de janeiro de 2017 01:14
    segunda-feira, 30 de janeiro de 2017 14:16