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?