• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

overcloked

[VB 2005] Preservar valor de array multidimensional num loop

6 mensagens neste tópico

Broas...

Ando aqui a tentar fazer uma array multidimenssional para poder guardar duas collumns e varias rows de uma BD em SQL.

Tou a ter problemas porque cada vez que faz loop para ir para a proxima row os valores da array anteriores são apagados  :P

Para terem uma ideia melhor do que estou a fazer aqui fica o codigo que tenho:

        ' Preenchimento dos dados de ligação ao SQL Server 2000
        conn.ConnectionString = "data source=vmwareserver;initial catalog=MercoFarma;persist security info=False;user id=admin;password=admin"

        cmd.CommandText = "SELECT * FROM tabClientes"
        cmd.Connection = conn

        Dim reader As DbDataReader = Nothing
        Try
            conn.Open()
            reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)

            Me.ComboClientes.Items.Clear()
            If reader.HasRows Then
                Dim i As Integer

                While reader.Read()
                    Dim arrThisArray(i, 1) As String


                    arrThisArray(i, 0) = reader.GetValue(0)
                    arrThisArray(i, 1) = reader.GetValue(1)
                    i += 1

                End While

            Else
                MessageBox.Show("Não há registos.")
            End If
        Catch exp As Exception
            MessageBox.Show(exp.Message)
            MessageBox.Show("Ocorreu um erro.")
        Finally
            If Not IsNothing(reader) Then reader.Close()
        End Try

A array apaga os dados anteriores depois de fazer um novo loop, vejam as screenshots do debug:

ef848a794c.jpg9162b06f67.jpg

Se alguem me poder mostrar a luz, agradeço....

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas

Tu desculpa, mas  se estás a ir buscar coisas  a uma BD pq não trabalhas com  o dataset?

Podes explicar melhor qual é o objectivo?

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

humm!?  :P

N percebo la mto disto ainda, podes me dizer como farias isto com o dataset?

O objectivo é escrever numa combobox nomes de "clientes" que estão na DB mas quero associar o "IDCliente"  ao nome, para isso pensei numa array multidimenssional em que:

arrThisArray(0, 0) = 1

arrThisArray(0, 1) = "João"

arrThisArray(1, 0) = 2

arrThisArray(1, 1) = "Maria"

etc...

PS: O IDCliente está  na coluna 0 da tabela SQL e o nome na coluna 1

Tks :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Jorge obrigado pela luz, mas consegues me explicar como fazer como se fosse mto burro? :P

Já tentei usar mas continuo sem conseguir salvar os valores anteriores, tou a usar antes da incrementação do i "ReDim Preserve arrThisArray(i, 0)" mas n tá a dar :P

Alguma pista de como hei-de fazer isto?

Tks in advance :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ve este codigo onde uso arrays e o Preserve...se não entenderes algo avisa q tento esclarecer

Public Function Dec2Bin(ByVal dec As Integer) As String
        Dim tmp As Object
        Dim resto As Integer
        Dim bin() As Integer
        Dim nr_bin As Integer
        ReDim bin(0)
        tmp = dec
        While tmp >= 2
            resto = dec Mod 2
            dec \= 2
            tmp = dec
            bin(UBound(bin)) = resto
            ReDim Preserve bin(UBound(bin) + 1)

        End While
        bin(UBound(bin)) = dec
        Array.Reverse(bin)
        For Each nr_bin In bin
            Console.Write(nr_bin)
        Next

    End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora