Jump to content

Recommended Posts

Posted

Oi pessoal

Estou a tentar preencher um ComboBox1 com os registos de uma tabela.

Fui buscar um exemplo e estou tentando adaptalo ao que pretendo.

Exemplo(funciona)

'exibe a "tabelaClientes.CompanyName no ComboBox

Me.ComboBox1.DisplayMember = "tabelaClientes.CompanyName"

Me.ComboBox1.ValueMember = "tabelaClientes.CustomerID"

Adaptação (tenho varias tabelas que pretendo ver na combo sempre que altera a CategoriaTextBox.Text)

'exibe a "tabela no ComboBox

        Me.ComboBox1.DisplayMember = " & CategoriaTextBox.Text & " & " & . & " & CategoriaTextBox.Text & ";"

        Me.ComboBox1.ValueMember = " & CategoriaTextBox.Text & " & " & . & " & CategoriaTextBox.Text & ";"

Só que assim não funciona apresenta o erro:

"Child list for field  & CategoriaTextBox cannot be created."

Penso que me falta algum sinal, mas já não consigo atinar  :wallbash:

Agradeço uma dica

Obrigado

Posted

Já está resolvido ? Mostra a tua solução, mas deverá ser mais ou menos isto:

Me.ComboBox1.DisplayMember = CategoriaTextBox.Text & "." & CategoriaTextBox.Text

Me.ComboBox1.ValueMember = CategoriaTextBox.Text & "." & CategoriaTextBox.Text

Posted

Oi depois de matutar (isto de ser maçarico tem os seus quês) a solução que encontrei foi

Dim str As String = Trim(CategoriaTextBox.Text)

        Dim str1 As String = "."

        Dim strTotal As String = str & str1 & str

  'exibe a "tabela no ComboBox

        Me.ComboBox1.DisplayMember = strTotal

        Me.ComboBox1.ValueMember = strTotal

No fundo é a mesma coisa penso eu.

Aproveito para tentar esclarecer uma situação Aviso que me aparece no código assinalado a azul e que apresenta o aviso:

"Variable 'CONN' is used before it has been assigned a value. A nul reference exception cold result at runtime"

Eis o codigo da rotina ( a mesma funciona sem erros ), no entanto apresenta um aviso, poderá ter problemas futuros?

  Dim dAdapter As SqlDataAdapter

        Dim dvm As DataViewManager

        Dim dset As DataSet

        Dim conn As SqlConnection

        Dim str As String = Trim(CategoriaTextBox.Text)

        Dim str1 As String = "."

        Dim strTotal As String = str & str1 & str

        Try

            'abre a conexão com o banco de dados

            conn = New SqlConnection(criaStringConexao)

            conn.Open()

        Catch ex As SqlException

            MessageBox.Show(("Erro na conexão ..." + ex.Message))

        End Try

        'Dim sqlStr As String = "SELECT * FROM Diversos"

        Dim sqlStr As String = "SELECT * FROM " & CategoriaTextBox.Text & ";"

        'Instancia um DataAdapter passando a instrucao SQL e a conexão

        dAdapter = New SqlDataAdapter(sqlStr, conn)

        'Instancia o dataset

        dset = New DataSet()

        'Obtem a Coleção que fornece o mapeamento mestre

        ' entre a tabela fonte e o datatable

        dAdapter.TableMappings.Add("Table", Convert.ToString(str))

        'dAdapter.TableMappings.Add("Table", "Diversos")

        'Usa um data adapter para preencher o dataset ou datable com

        ' os dados retornados da instrução

        dAdapter.Fill(dset)

        'Quando vinculamos um DataSet, a plataforma .NET automaticamente usa o

        'DataViewManager correspondente fornecido atraves da propriedade DataSet.DefaultViewManager

        dvm = dset.DefaultViewManager

        ComboBox1.DataSource = dvm

        'exibe a "tabela no ComboBox

        Me.ComboBox1.DisplayMember = strTotal

        Me.ComboBox1.ValueMember = strTotal

        ' fecha a conexão com o banco de dados

        conn.Close()

Obrigado pela atenção

Chamuanza

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.