none
Array List VB.NET RRS feed

  • Pergunta

  • Pessoal,

    Eu tenho um Dataset que está executando uma consulta e o mesmo me retorna 'n' registros. Gostaria de criar um Array List para inserir apenas o código do produto no array. Como faço? Estou tentando dessa forma.

    Conexao = New SqlConnection(ConnSQLEXPRESS)
                Conexao.Open()

                Dim daSQL As SqlDataAdapter
                Dim dsSQL As DataSet

                daSQL = New SqlDataAdapter("SELECT * FROM mcv_configuracao WHERE CodMalha = " & cboPMO.SelectedValue & " ORDER BY CodConfigFK ASC", Conexao)
                dsSQL = New DataSet
                daSQL.Fill(dsSQL, "mcv_configuracao")

        Dim dr As DataRow
                Dim Atualizar() As Integer

                Cont = 0
                Salvar = True
                For Each dr In dsSQL.Tables(0).Rows
                    PMO(Cont).Text = dr(3).ToString()
                    Atualizar = dr(0)
                    Cont += 1
                Next

    O que pode estar errado nesse exemplo? Alguém poderia me ajudar?

    quinta-feira, 16 de abril de 2015 18:00

Respostas

Todas as Respostas

  • Resolvido!
    quinta-feira, 16 de abril de 2015 18:34
  • Olá FAS_MHP, tudo bem? Compartilha a solução para o nosso lado da força rs.

    Abraço

    Wellington Agápto - MVP Office 365 
    Microsoft Certified Systems Engineer | Cloud Architect and Team Leader
    ITIL, CCNA, MCP, MTA, MCITP, MCTS, MCSA, MCSA Office 365, MCSE Communication | Messaging
    Visite: Office365News | 
    WellingtonAgapto.org

    quinta-feira, 16 de abril de 2015 18:58
  • Ba Bom dia FAS_MHP.

    Colabore com o crescimento do Forum tche, compartilhe com o grupo.

    obrigado.

    segunda-feira, 20 de abril de 2015 10:33
  • Ops... mas é claro que compartilho com os demais... já fui ajudado por muitas pessoas aqui será um prazer divulgar a solução. Peço desculpas se não retornei antes. A solução ficou dessa forma:

    Dim CodigoFK(111) As Integer
    
    Conexao = New SqlConnection(ConnSQLEXPRESS)
                Conexao.Open()
    
                Dim daSQL As SqlDataAdapter
                Dim dsSQL As DataSet
    
                daSQL = New SqlDataAdapter("SELECT * FROM mcv_configuracao WHERE CodMalha = " & cboPMO.SelectedValue & " ORDER BY CodConfigFK ASC", Conexao)
                dsSQL = New DataSet
                daSQL.Fill(dsSQL, "mcv_configuracao")
    
    Cont = 0
    Salvar = False
                For Each dr In dsSQL.Tables(0).Rows
                    PMO(Cont).Text = dr(3).ToString()
                    CodigoFK(Cont) = dr(0)
                    Salvar = True
                    Cont += 1
                Next
    

    No meu caso ficou resolvido dessa forma porque eu sei a quantidade de registros que preciso. Mas se fosse uma quantidade 'x', poderia fazer uma função da seguinte forma e fazer a adaptação conforme necessidade:

    Public Function totalREG(ByVal codPM As Integer) As Integer
    
            Conexao = New SqlConnection(ConnSQLEXPRESS)
            Conexao.Open()
    
            Dim daSQL As SqlDataAdapter
            Dim dsSQL As DataSet
    
            querySQL = "SELECT COUNT(CodMalhaFK) AS Total, GerarXML, PM " & _
                "FROM mcv_malha " & _
                "GROUP BY GerarXML, PM " & _
                "HAVING (GerarXML = 'SIM') " & _
                "AND (PM = " & codPM & ")"
            daSQL = New SqlDataAdapter(querySQL, Conexao)
            dsSQL = New DataSet
            daSQL.Fill(dsSQL, "mcv_malha")
            If (dsSQL.Tables(0).Rows.Count > 0) Then
                totalREG = dsSQL.Tables(0).Rows(0)("Total")
            Else
                totalREG = 0
            End If
            daSQL = Nothing
            dsSQL = Nothing
            Conexao.Close()
    
        End Function

    Logo após poderia criar o array list da seguinte forma:

    dim meuarraylistindeterminado(totalREG) as integer

    Está ai e um grande abraço. Espero ter colaboradora de alguma forma.

    quinta-feira, 23 de abril de 2015 18:05
  • Ops... mas é claro que compartilho com os demais... já fui ajudado por muitas pessoas aqui será um prazer divulgar a solução. Peço desculpas se não retornei antes. A solução ficou dessa forma:

    Dim CodigoFK(111) As Integer
    
    Conexao = New SqlConnection(ConnSQLEXPRESS)
                Conexao.Open()
    
                Dim daSQL As SqlDataAdapter
                Dim dsSQL As DataSet
    
                daSQL = New SqlDataAdapter("SELECT * FROM mcv_configuracao WHERE CodMalha = " & cboPMO.SelectedValue & " ORDER BY CodConfigFK ASC", Conexao)
                dsSQL = New DataSet
                daSQL.Fill(dsSQL, "mcv_configuracao")
    
    Cont = 0
    Salvar = False
                For Each dr In dsSQL.Tables(0).Rows
                    PMO(Cont).Text = dr(3).ToString()
                    CodigoFK(Cont) = dr(0)
                    Salvar = True
                    Cont += 1
                Next

    No meu caso ficou resolvido dessa forma porque eu sei a quantidade de registros que preciso. Mas se fosse uma quantidade 'x', poderia fazer uma função da seguinte forma e fazer a adaptação conforme necessidade:

    Public Function totalREG(ByVal codPM As Integer) As Integer
    
            Conexao = New SqlConnection(ConnSQLEXPRESS)
            Conexao.Open()
    
            Dim daSQL As SqlDataAdapter
            Dim dsSQL As DataSet
    
            querySQL = "SELECT COUNT(CodMalhaFK) AS Total, GerarXML, PM " & _
                "FROM mcv_malha " & _
                "GROUP BY GerarXML, PM " & _
                "HAVING (GerarXML = 'SIM') " & _
                "AND (PM = " & codPM & ")"
            daSQL = New SqlDataAdapter(querySQL, Conexao)
            dsSQL = New DataSet
            daSQL.Fill(dsSQL, "mcv_malha")
            If (dsSQL.Tables(0).Rows.Count > 0) Then
                totalREG = dsSQL.Tables(0).Rows(0)("Total")
            Else
                totalREG = 0
            End If
            daSQL = Nothing
            dsSQL = Nothing
            Conexao.Close()
    
        End Function

    Logo após poderia criar o array list da seguinte forma:

    dim meuarraylistindeterminado(totalREG) as integer

    Está ai e um grande abraço. Espero ter colaboradora de alguma forma.

    quinta-feira, 23 de abril de 2015 18:08