locked
Combobox RRS feed

  • Pergunta

  • Bom Dia , tem hora que meu combobox aparece os dados e hora não . alguém pode me ajudar ?

        Private Sub CarregarEmpresaRazaoSocial()

            Using con As MySqlConnection = Conectar()
                Try
                    con.Open()
                    Dim sql As String = "SELECT razao_social FROM empresa"
                    Dim cmd As MySqlCommand = New MySqlCommand(sql, con)
                    Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable
                    da.Fill(dt)

                    Cmb_RazaoSocial.ValueMember = "razao_social"
                    Cmb_RazaoSocial.DisplayMember = "razao_social"
                    Cmb_RazaoSocial.DataSource = dt
                    Cmb_RazaoSocial.SelectedIndex = -1

                    ComboBox1.Text = Cmb_RazaoSocial.SelectedValue

                Catch ex As Exception
                    MsgBox(ex.Message)
                Finally
                    con.Close()
                End Try
            End Using
        End Sub

         
    domingo, 25 de outubro de 2015 11:33

Respostas

  • Sim , mas os dados não carregam sempre , sempre tem hora que aparece os dados e horas que não .

    Boa noite.

    Soaresziin, recomendo que coloques um breaking point para que seja possível entender melhor o problema.

    Poste aqui as novas descobertas.


    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ quinta-feira, 29 de outubro de 2015 13:47
    • Marcado como Resposta Marcos SJ segunda-feira, 2 de novembro de 2015 14:35
    quinta-feira, 29 de outubro de 2015 01:27

Todas as Respostas

  • Boa tarde.

    Qual exatamente o problema?

    O ComboBox não é preenchido com os dados (no caso, razão social)?

    Pelo código, tem duas coisas levemente estranhas:

    1- ValueMember ser uma string: normalmente no ValueMember colocamos o ID do que queremos selecionar. Claro, isso vai depender bastante do teu sistema, mas normalmente pegamos o ID e gravamos em banco como FK.

    2 - Estas duas linhas:

    Cmb_RazaoSocial.SelectedIndex = -1
    ComboBox1.Text = Cmb_RazaoSocial.SelectedValue

    Se teu index está como -1, teu ComboBox terá um valor vazio.

    De qualquer forma, recomendo colocar um breaking point e verificar se estão sendo retornando dados do banco de dados e também o que mais pode estar dando errado no meio do caminho.


    Att., Rafael Simor

    domingo, 25 de outubro de 2015 18:12
  • Mesmo eu removendo as duas linhas tem hora que carrega e não carrega ,  depois que eu edito os dados de salvo e tento atualizar os o combobox não aparece as informaçoes

    removi essas duas linhas;

    Cmb_RazaoSocial.SelectedIndex = -1
    ComboBox1.Text = Cmb_RazaoSocial.SelectedValue

    domingo, 25 de outubro de 2015 18:57
  • Descreva melhor o problema.

    Por exemplo: as informações deveriam aparecer no Load de um Form?

    Tem horas que o Form abre com as informações e algumas horas, não?

    Ou "quando abro o Form as informações aparecem, porém quando faço X, nem sempre elas estão lá".

    Se possível, nos mostre onde este método está sendo chamado.


    Att., Rafael Simor

    domingo, 25 de outubro de 2015 19:03
  • Tô montano um sistema de cadastro de Empresa. nele tem um form para cadastrar e editar as empresas.

    no form de editar a empresa , coloquei um combobox chamado Cmb_Filtro para a pessoa escolher como quer pesquisar a Empresa (Razão Social , Nome Fantasia) e do lado tem dois combobox(Cmb_RazaoSocial,Cmb_NomeFantasia)  que ficam visível e ativo de acordo com a escolha do filtro. Se a pessoa escolher no filtro pesquisa por Razão social , ele torna visível e permite a pessoa escolher A Razão Social que quer editar , e chama a funcão carrega Razão Social , e nessa horas que a função não mostra a lista de das razões social que tem no meu banco de dados , e quando carrega não consigo atualizar o Cmb_RazaoSocial depois que eu faço alguma alteração nos textbox q é preenchido .

    Private Sub CarregarRazaoEmpresa()
            Cmb_NomeFantasia.DataSource = Nothing
            Using con As MySqlConnection = Conectar()
                Try
                    con.Open()
                    Dim sql As String = "SELECT * FROM empresa"
                    Dim cmd As MySqlCommand = New MySqlCommand(sql, con)
                    Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable
                    da.Fill(dt)

                    Cmb_RazaoSocial.DisplayMember = "razao_social"
                    Cmb_RazaoSocial.DataSource = dt

                Catch ex As Exception
                    MsgBox(ex.Message)
                Finally
                    con.Close()
                End Try
            End Using
        End Sub

        Private Sub CarregarFantasiaEmpresa()
            Cmb_NomeFantasia.DataSource = Nothing
            Cmb_NomeFantasia.ResetText()
            Using con As MySqlConnection = Conectar()
                Try
                    con.Open()
                    Dim sql As String = "SELECT * FROM empresa"
                    Dim cmd As MySqlCommand = New MySqlCommand(sql, con)
                    Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
                    Dim dt As DataTable = New DataTable
                    da.Fill(dt)

                    Cmb_NomeFantasia.DisplayMember = "nome_fantasia"
                    Cmb_NomeFantasia.DataSource = dt

                Catch ex As Exception
                    MsgBox(ex.Message)
                Finally
                    con.Close()
                End Try
            End Using
        End Sub

      If Cmb_Filtrar.Text = "Razão Social" Then
                CarregarRazaoEmpresa()
                LimparTxtEmpresa()
                RemoverCorEmpresa()
                Cmb_RazaoSocial.Enabled = True
                Cmb_RazaoSocial.Visible = True
                Cmb_NomeFantasia.Enabled = False
                Cmb_NomeFantasia.Visible = False
             End If

            If Cmb_Filtrar.Text = "Nome Fantasia" Then
                CarregarFantasiaEmpresa()
                LimparTxtEmpresa()
                RemoverCorEmpresa()
                Cmb_RazaoSocial.Enabled = False
                Cmb_RazaoSocial.Visible = False
            Cmb_NomeFantasia.Enabled = True
                Cmb_NomeFantasia.Visible = True
            End If

    Consegue Entender ?

    domingo, 25 de outubro de 2015 19:22
  • Tente o seguinte:

    If Cmb_Filtrar.Text.Equals("Nome Fantasia") Then

    Faça nos dois If's.

    Se não der certo, tente o seguinte:

    If Cmb_Filtrar.Text.Trim().Equals("Nome Fantasia") Then

    E imagino que esses If's estão no evento SelectedIndexChanged do Cmb_Filtrar, correto?

    Se não estiver, os métodos podem estar funcionando, mas nunca estão sendo chamados.

    Tu podes colocar um breaking point nesses dois if's para ver se eles estão sendo, de fato, chamados.

    Obs.:

    - Não tire a linha do ValueMember, só comentei que estava um pouco estranho; de preferência coloque a chave primária da tua tabela.

    Edit: Tente tirar essas linhas para ver se ajuda.

    'CarregarRazaoEmpresa()
    Cmb_NomeFantasia.DataSource = Nothing
    
    'CarregarFantasiaEmpresa()
    Cmb_NomeFantasia.DataSource = Nothing
    Cmb_NomeFantasia.ResetText()

    Att., Rafael Simor


    • Editado SimorC domingo, 25 de outubro de 2015 20:08
    domingo, 25 de outubro de 2015 19:49
  • Continua com a mesma coisa , Obrigado pela Atenção
    domingo, 25 de outubro de 2015 20:32
  • Olá Soaresziin,

    Você conseguiu aplicar de maneira adequada as instruções passadas acima?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 28 de outubro de 2015 19:41
  • Sim , mas os dados não carregam sempre , sempre tem hora que aparece os dados e horas que não .
    quarta-feira, 28 de outubro de 2015 21:52
  • Sim , mas os dados não carregam sempre , sempre tem hora que aparece os dados e horas que não .

    Boa noite.

    Soaresziin, recomendo que coloques um breaking point para que seja possível entender melhor o problema.

    Poste aqui as novas descobertas.


    Att., Rafael Simor

    • Sugerido como Resposta Marcos SJ quinta-feira, 29 de outubro de 2015 13:47
    • Marcado como Resposta Marcos SJ segunda-feira, 2 de novembro de 2015 14:35
    quinta-feira, 29 de outubro de 2015 01:27
  • Boa tarde,

    Por falta de retorno do usuário, esta thread será encerrada.

    Caso seja necessário, por gentileza, abra uma thread nova.

    Atenciosamente

    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 2 de novembro de 2015 14:36