none
Dataset como variável pública RRS feed

  • Pergunta

  • Pessoal, estou com a seguinte dúvida: tenho um formulário com várias combobox cujas fontes de dados são tabelas. Como está demorando para abrir o form, tive a ideia de carregar as tabelas em datasets como variáveis públicas, ao entrar no aplicativo. Depois eu poderia usar estes datasets nos formulários onde fossem necessários.

    Ficou assim:

    1) Ao entrar no programa:

       Public dsCIDADES As DataSet = New DataSet()  'define o dataset com MUNICIPIOS
    
      Public Sub MunicipioSemNome()
            'CARREGA A TABELA EM UMA VARIÁVEL PÚBLICA (DATASET)
            conexao()
            Dim vSql = "SELECT * FROM TAB_Municipios ORDER BY Municipio"
            Dim conn As SqlConnection = New SqlConnection(cs)
            Dim comm As SqlCommand = New SqlCommand(vSql, conn)
            Dim da As SqlDataAdapter = New SqlDataAdapter(comm)
            Dim dt As DataTable
    
            conn.Open()
            da.Fill(dsCIDADES, "TAB_Municipios")
            dt = dsCIDADES.Tables("TAB_Municipios")
            Dim dr As DataRow = dt.Rows(0)
            vMunicipioSemNome = dr("MunicipioID")   'MUNICIPIO COM O NOME EM BRANCO
            conn.Close()
    
    
        End Sub

    2) No form:

     MunicipioSemNome()
            Dim daMUNICIPIOS As New SqlDataAdapter
            Dim dtMUNICIPIOS As New DataTable
    
            daMUNICIPIOS.Fill(dsCIDADES, "TAB_Municipios")
            dtMUNICIPIOS = dsCIDADES.Tables("TAB_Municipios")
            ComboBox1.DataSource = dtMUNICIPIOS
            ComboBox1.DisplayMember = "Municipio"
            ComboBox1.ValueMember = "MunicipioID"

    Não está funcionando no form, na parte onde deveria preencher o dataset.

    Minhas perguntas são:

    a) tem como fazer isso funcionar?

    b) existe outra maneira de fazer com que as tabelas sejam carregadas no início do programa, sem demorar a abertura dos forms?

    quinta-feira, 24 de julho de 2014 11:21

Respostas

  • Resolvido: Simplesmente não dá para fazer o fill novamente. Retirei as linhas

    Dim daMUNICIPIOS As New SqlDataAdapter

    e

    daMUNICIPIOS.Fill(dsCIDADES, "TAB_Municipios")

    • Marcado como Resposta Paulo 15 sexta-feira, 25 de julho de 2014 18:43
    sexta-feira, 25 de julho de 2014 18:43