• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Chamuanza

Erro de Sintax ou Outro ?

5 mensagens neste tópico

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

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

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É só um aviso e podes alterar a declaração para :

Dim conn As SqlConnection = Nothing

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora