Ajuda - Busca - Membros - Calendário
Versão Completa: Combobox
Fórum Script Brasil > Programação & Desenvolvimento > .NET
sadjuan
Oi galera, tou com um problema, tenho uma comobox no meu projecto que esta carregada com nome de produtos tabela produtos, ate aqui tudo bem, mas eu quero que quando eu selecionar um produto na combo apareca tambem o preço e a quantidade do produto em labels que se encontram no formulario.

Agradecia desde já.
OSJunior
Olá.

Utilize o evento SelectedIndexChanged.
sadjuan
Continuo a não perceber, agradecia que me ajudassem no codigo.

Agradeco desde de já as ajudas.
Gafanhoto
Clica 2 vezes em cima da combobox. Ele vai criar o evento SelectedIndexChanged.

Ali você vai ter que fazer mais ou menos o seguinte:

CRIAR UMA VARIAVEL PRA RECEBER O DROPDOWNLIST.VALUE

Depois cria uma conexão com o banco, um comando sql de seleção, adicionando como parâmetro aquela variável que você selecionou.

Daí define as labels com o retorno do select.

Procura exemplos na NET ou aqui mesmo no fórum tem.

Ou então acessa esse link: http://www.macoratti.net/vbn_cbo.htm
sadjuan
Oi.
Fui ver o link http://www.macoratti.net/vbn_cbo.htm

experimentei o codigo e esta a me dar um erro, agradecia que me ajudassem.

No evento load do form coloquei assim:

CODE
'TODO: This line of code loads data into the 'TreinoDataSet.Clientes' table. You can move, or remove it, as needed.
        Me.ClientesTableAdapter.Fill(Me.TreinoDataSet.Clientes)
        cadastroConexao = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Application.StartupPath & "\Treino.mdb" & " ")
        cadastroConexao.Open()
        'define um objeto command
        cadastroComando = New OleDbCommand("select * from Produtos", cadastroConexao)
        'define um dataAdapter
        cadastroAdapter = New OleDbDataAdapter
        cadastroAdapter.SelectCommand = cadastroComando
        'define e preenche uma DataTable com os dados
        cadastroDS = New DataSet
        cadastroAdapter.Fill(cadastroDS, "Produtos")
        cadastroTabela = cadastroDS.Tables("Produtos")
        Call EnabledFalse()
        cmdDelete.Enabled = False

        With ComboBox1

            .DataSource = cadastroDS.Tables("Produtos")

            .DisplayMember = "nome"

            .ValueMember = "preço"

        End With



        ComboBox1.SelectedIndex = 0

        Label5.Text = CType(ComboBox1.SelectedValue, String)


E no evento SelectedIndexChanged coloquei assim:

CODE
ComboBox1.SelectedIndex = 0

        Label5.Text = CType(ComboBox1.SelectedValue, String)


A combobox e preenchida com os dados, mas quando eu clico na combo para selecionar outro produto ele da erro na alinea :
CODE
Label5.Text = CType(ComboBox1.SelectedValue, String)


e diz o seguinte:

Conversion from type 'DataRowView' to type 'String' is not valid.

Porque sera?


Mas quando eu tira o evento SelectedIndexChanged, os dados são carregados na combo e na label5.text e mostrado o preço do produto que esta selecionado primeiro e quando seleciono outro, a label não muda de acordo com a selecao.




Agradeco desde de já.

Gafanhoto
Na combobox está ativado o ENABLE POST BACK ?

Experimenta colocar assim no evento :

Label5.Text = Combobox1.SelectedValue
sadjuan
Oi, já experimentei e nada, continua com o erro.
Quando coloquei no evento SelectedIndexChanged:

CODE
Label5.Text = Combobox1.SelectedValue
ele da este erro de novo:

Conversion from type 'DataRowView' to type 'String' is not valid.


Como faco para verificar se a combobox esta activado o ENABLE POST BACK?

Agradecia que me ajudassem a resolver o problema.



Gafanhoto
Clica com o botão direito em cima da combobox pra ver o enable postback.

Quanto ao erro, poe assim:

Combobox1.SelectedValue.toString

Esta é uma versão simplificada de nosso conteúdo principal. Para ver a versão completa com maiores informações, formatação e imagens, por favor clique aqui.
Invision Power Board © 2001-2012 Invision Power Services, Inc.