Chamuanza Posted April 10, 2009 at 09:34 PM Report #256235 Posted April 10, 2009 at 09:34 PM 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 Agradeço uma dica Obrigado
jpaulino Posted April 11, 2009 at 05:12 PM Report #256303 Posted April 11, 2009 at 05:12 PM 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
Chamuanza Posted April 13, 2009 at 07:32 PM Author Report #256576 Posted April 13, 2009 at 07:32 PM 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
jpaulino Posted April 13, 2009 at 07:45 PM Report #256580 Posted April 13, 2009 at 07:45 PM É só um aviso e podes alterar a declaração para : Dim conn As SqlConnection = Nothing
Chamuanza Posted April 13, 2009 at 08:04 PM Author Report #256585 Posted April 13, 2009 at 08:04 PM 😁 Ok o aviso foi eliminado
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now