Ir para conteúdo
Fórum Script Brasil
  • 0

Data Grid - Propriedade


Andersonjb

Pergunta

E ai Gray, de só uma olhada nessa imagem:

http://img31.imageshack.us/my.php?image=dgvazia7kw.jpg

Bem, e olhe esse codigo:

        Dim dtcond As New DataTable
        Dim legal As String
        Dim linhacond As DataRow
        Dim colunacond As DataColumn
        dtcond = dgtabela.DataSource

        For Each linhacond In dtcond.Rows
            For Each colunacond In dtcond.Columns
                legal = legal & linhacond(colunacond)
            Next
        Next

Bem, toda vez que eu clico no menu da erro logo no For Each, ai eu pensei, deve ser porque a Data Table está vazia, e eu queria saber se eu posso estabelecer uma condição com alguma propriedade ou método de que quando a data grid estiver daquele jeito, ele não execute esta ação. Voce conhece alguma?

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Bem, não funcionou, olha o erro:

Object reference not set to an instance of an object.

E olha o código:

        Dim dtcond As New DataTable
        Dim legal As String
        Dim linhacond As DataRow
        Dim colunacond As DataColumn
        dtcond = dgtabela.DataSource
        If dtcond.Rows.Count > 0 Then
            For Each linhacond In dtcond.Rows
                For Each colunacond In dtcond.Columns
                    legal = legal & linhacond(colunacond)
                Next
            Next
        End If

O que esta errado?

Link para o comentário
Compartilhar em outros sites

  • 0

Bem, não funcionou, olha o erro:

Object reference not set to an instance of an object.

E olha o código:

        Dim dtcond As New DataTable
        Dim legal As String
        Dim linhacond As DataRow
        Dim colunacond As DataColumn
        dtcond = dgtabela.DataSource
        If dtcond.Rows.Count > 0 Then
            For Each linhacond In dtcond.Rows
                For Each colunacond In dtcond.Columns
                    legal = legal & linhacond(colunacond)
                Next
            Next
        End If
O que esta errado?
Então o problema é que a propriedade DataSource da dgtabela não está definida. O problema no seu caso é que provavelmente você *não* criou uma datatable e atribuiu ela à propriedade DataSource da datagrid. Uma coisa que notei no seu código é que você está fazendo...
Dim dtcond As New DataTable
... e depois...
dtcond = dgtabela.DataSource
... sendo na primeira você está criando um *novo* objeto DataTable e na segunda você está referenciando um objeto já existente. Ou seja, você deveria fazer...
Dim dtcond As DataTable
dtcond = dgtabela.DataSource
... ou ainda:
Dim dtcond As DataTable = dgtabela.DataSource

Sendo que isso *não* é a solução para o seu problema, é apenas uma dica de como otimizar o seu código.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, mas qual seria a solução para o meu problema? Continua dando o mesmo erro!

E sobre criar, por exemplo, essa diferença:

Dim dtcond As New DataTable
Dim dtcond As DataTable

A unica diferença e que na primeira eu chamo o construtor da classe, correto?

Link para o comentário
Compartilhar em outros sites

  • 0

Certo, mas qual seria a solução para o meu problema? Continua dando o mesmo erro!

Você está criando uma DataTable e referenciando ela na propriedade DataSource da datagrid em algum local? *Em algum momento* você tem que criar uma DataTable, adicionar colunas nela e jogá-la na propriedade DataSource da datagrid.

E sobre criar, por exemplo, essa diferença:

Dim dtcond As New DataTable
Dim dtcond As DataTable

A unica diferença e que na primeira eu chamo o construtor da classe, correto?

Sim. Sendo que a intenção no caso é utilizar uma datatable já existente, portanto você *não* precisa criar uma nova (o que você faz no primeiro caso).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Sim. Sendo que a intenção no caso é utilizar uma datatable já existente, portanto você *não* precisa criar uma nova (o que você faz no primeiro caso).

Bem, mas como assim existente? Eu não saquei esse lance de que o bjeto já existe!

*Em algum momento* você tem que criar uma DataTable, adicionar colunas nela e jogá-la na propriedade DataSource da datagrid.

Bem, mas eu não posso verificar se há alguma coisa nela sem antes ter que adicionar colunas?

Link para o comentário
Compartilhar em outros sites

  • 0

Sim. Sendo que a intenção no caso é utilizar uma datatable já existente, portanto você *não* precisa criar uma nova (o que você faz no primeiro caso).

Bem, mas como assim existente? Eu não saquei esse lance de que o bjeto já existe!

A DataTable que você quer *deveria* estar na propriedade DataSource da datagrid (se você realmente colocou uma lá, o que eu acho que é o problema no caso).

*Em algum momento* você tem que criar uma DataTable, adicionar colunas nela e jogá-la na propriedade DataSource da datagrid.

Bem, mas eu não posso verificar se há alguma coisa nela sem antes ter que adicionar colunas?

"Nela" onde? Na propriedade DataSource? Se você não definiu nada para ela, então ela é nada (Nothing). *Não* existe uma datatable por padrão na propriedade DataSource (já que uma datatable é *apenas uma* das fontes de dados possíveis para uma datagrid).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...