POPULRA DATAGRIDVIEW

 Tópico anterior Próximo tópico Novo tópico

POPULRA DATAGRIDVIEW

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#478757 - 29/12/2017 14:45:25

MOREIRA
SAO LUIS - TURU
Cadast. em:Agosto/2004


Última edição em 29/12/2017 14:50:45 por MOREIRA

Boa tarde,

o que há de errado nesse código ?

tenho form 01 e form 02

preciso popular o grid com dados do form 2


Se possivel alguma ajuda usando list off

  Private Sub btn_Gravar_Click(sender As Object, e As EventArgs) Handles btn_Gravar.Click

        'On Error Resume Next

        Dim PopulaGrid As New FORM_01
        Dim dt As New DataTable
        Dim dr As DataRow

        dt.Columns.Add("codigo")
        dt.Columns.Add("Nome")

        dr = dt.NewRow()

        dr.Item("codigo") = 1
        dr.Item("Nome") = "NILTON MOREIRA PINTO"

        dt.Rows.Add(dr)

        PopulaGrid.DtGr.DataSource = dt
        PopulaGrid.Refresh()
    End Sub



Eu não nasci, fui Compilado

#478759 - 29/12/2017 14:56:45

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe

///no seu evento:
List<Dados> dados = new List<Dados>();
dados.Add(new Dados() { Codigo = 1, Nome = "Nilton"});
dados.Add(new Dados() { Codigo = 2, Nome = "Joãozinho"});
dtGr.DataSource = dados;

public class Dados
{
    public int Codigo { get; set; }
    public string Nome { get; set;}
}


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478760 - 29/12/2017 15:01:14

JABA
CABO FRIO
Cadast. em:Agosto/2005


Cada instância criada do seu form representa um novo form em memória, por isso os dados não aparecem no seu form em execução. Faça assim:

Private Sub btn_Gravar_Click(sender As Object, e As EventArgs) Handles btn_Gravar.Click

        'On Error Resume Next

        Dim dt As New DataTable
        Dim dr As DataRow

        dt.Columns.Add("codigo")
        dt.Columns.Add("Nome")

        dr = dt.NewRow()

        dr.Item("codigo") = 1
        dr.Item("Nome") = "NILTON MOREIRA PINTO"

        dt.Rows.Add(dr)

        FORM_01.DtGr.DataSource = dt
        FORM_01.Show()

    End Sub


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478762 - 29/12/2017 15:13:43

MOREIRA
SAO LUIS - TURU
Cadast. em:Agosto/2004


Citação:
:

///no seu evento:
List<Dados> dados = new List<Dados>();
dados.Add(new Dados() { Codigo = 1, Nome = "Nilton"});
dados.Add(new Dados() { Codigo = 2, Nome = "Joãozinho"});
dtGr.DataSource = dados;

public class Dados
{
    public int Codigo { get; set; }
    public string Nome { get; set;}
}



Obrigado pela ajuda. Mas alguma sintaxe do código nao entendi para vb.net

Eu não nasci, fui Compilado

#478764 - 29/12/2017 16:08:09

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Isso significa que você ainda não entendeu OOP. Basta usar um conversor


_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478774 - 29/12/2017 21:03:26

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Última edição em 29/12/2017 21:04:28 por NILSONTRES

http://www.carlosag.net/tools/codetranslator/
convertido.
Dim dados As List(Of Dados) = New List(Of Dados)
dados.Add(New Dados)
dados.Add(New Dados)
dtGr.DataSource = dados
Public Class Dados
    
    Public Property Codigo As Integer
        Get
        End Get
        Set
        End Set
    End Property
    
    Public Property Nome As String
        Get
        End Get
        Set
        End Set
    End Property
End Class

No site indicado pelo KERPLUNK, deu erro, não entendi porque, por isso potei.




#478786 - 30/12/2017 22:19:56

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


nesse site do Macoratti tem um passo-a-passo usando list

agora para popular o grid em outro for:
OutroForrm.Grid.datasource = SuaFonteDeDados ' pode ser um list aqui

O conhecimento é como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#478805 - 02/01/2018 11:54:55

MOREIRA
SAO LUIS - TURU
Cadast. em:Agosto/2004


 Anexos estao visíveis somente para usuários registrados


Amigos, bom dia e feliz ano novo a todos!

então, novamente pedindo ajuda!

até aqui consigo acionar a datagrid, só sem dados.

preciso entender como posso atribuir os valores digitados e preencher na grid

por favor, peço humildimente a paciencia dos colegas.



  Private Sub btn_Gravar_Click(sender As Object, e As EventArgs) Handles btn_Gravar.Click

        Dim dados As List(Of Dados) = New List(Of Dados)
        Dim ff As New Dados

        dados.Add(New Dados)
        dados.Add(New Dados)
        dados.Add(New Dados)
        dados.Add(New Dados)
        dados.Add(New Dados)

        F_O1001001.DtGr.DataSource = dados
        F_O1001001.Show()

    End Sub


  Public Class Dados

    Private _codigo As Integer
    Private _Nome As String

    Public Property Codigo() As Integer

        Get
            Return _codigo
        End Get

        Set(ByVal value As Integer)
            _codigo = value
        End Set

    End Property
    Public Property Nome() As String

        Get
            Return _Nome
        End Get

        Set(ByVal value As String)
            _Nome = value
        End Set
    End Property

End Class


Eu não nasci, fui Compilado

#478809 - 02/01/2018 12:57:26

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Olha, sugiro você parar por aqui e estudar de verdade OOP, porque é com certeza onde você está pecando. Não é postando código aqui que vai te ajudar. Você precisa realmente entender o que está fazendo, senão será completamente ineficiente para seu aprendizado.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


#478810 - 02/01/2018 13:04:02

MOREIRA
SAO LUIS - TURU
Cadast. em:Agosto/2004


Última edição em 02/01/2018 13:05:16 por MOREIRA

Citação:
:
Olha, sugiro você parar por aqui e estudar de verdade OOP, porque é com certeza onde você está pecando. Não é postando código aqui que vai te ajudar. Você precisa realmente entender o que está fazendo, senão será completamente ineficiente para seu aprendizado.


Amigo, desculpas! Mas entendo sua boa intençao em orientar da melhor forma.

Nao se trata de pedi código pronto. Apenas ajuda para entender se estou fazendo errado ou não, de qualquer forma, obrigado !!


Eu não nasci, fui Compilado

#478811 - 02/01/2018 13:20:34

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Então, ótimo! Vamos lá:
O  que você precisa entender é que um DataGrid é apenas uma representação de dados. Veja uma planilha do excel por exemplo, com dados de cliente, tipo Código, nome e data de cadastro. Quando você coloca esses dados linha à linha, você tem uma planilha normal, mas você consegue visualizar mentalmente esses mesmos dados em uma forma não linear. O que estou fazendo no exemplo que passei, é basicamente isso. Estou criando uma entidade, com algumas propriedades, adicionando instâncias desses dados em uma List<T> e passando essa List<T> como sendo os dados que devem ser exibidos no grid. Cada instância deve ser única(idealmente) para ter uma representação coerente de dados. Veja bem o que você está fazendo:

dados.Add(New Dados)
        dados.Add(New Dados)
        dados.Add(New Dados)
        dados.Add(New Dados)
        dados.Add(New Dados)



"New Dados" é uma nova instância do objeto(entidade) "Dados", que você está adicionando ao seu List<Dados> até aqui está quase lá, o que você precisa é colocar dados nesse instância. O caso é que o código convertido não está fazendo isso. Seria algo como:

dados.Add(New Dados() With { .Codigo = 1, .Nome = "Joao"  })
dados.Add(New Dados() With { .Codigo = 2, .Nome = "Maria"  })
dados.Add(New Dados() With { .Codigo = 1, .Nome = "Pedro"  })


E essa é uma das razões de eu não usar(aliás quase ninguém, em se falando de mundo corporativo) o dialeto VB.NET, ele  não é muito intuitivo e nem muito prático.

_______________________________________________________________________
Gostaria de ter seu sistema Desktop "traduzido" para uma interface web? Podemos conversar...
Virei Oráculo!
The end is nigh, be ready for the nukes!


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por MOREIRA em 06/01/2018 12:17:30