none
Datagridview dados em Loop RRS feed

  • Pergunta

  • Ola,

    Estou querendo fazer o seguinte. Tenho um Datagrid que gera os dados dinamicamente. Eu pego os dados de uma Planilha csv e o datagrid a coluna e as linhas são geradas de acordo com esse arquivo. Esse arquivo é dinamico, as colunas e linhas são variaveis. O que eu preciso é o seguinte, mesmo os dados sendo variáveis. A primeira coluna é sempre a mesma ( ID ) preciso pegar todos os dados das celulas da coluna ID para guardar em uma variavel vou tentar fazer um exemplo abaixo:

    ID 123 456 789

    Preciso guardar esses dados assim:

    123,456,789

    Dentro de uma variável. como posso fazer isso ? Meu sistema é todo feito em VB.Net

    Desde já agradeço

    terça-feira, 8 de maio de 2018 14:13

Respostas

  • Rodrigo Pereira de Freitas,

       OKay... acho que agora entendi... o que você quer é isso:

    Dim strTeste As String = ""
    
    DataGridView1.Rows.Add("123") 'RETIRE ESSA LINHA
    DataGridView1.Rows.Add("456") 'RETIRE ESSA LINHA
    DataGridView1.Rows.Add("789") 'RETIRE ESSA LINHA
    
    For Each row As DataGridViewRow In DataGridView1.Rows
    
        If row.Cells(0).Value <> Nothing Then
    
            strTeste += row.Cells(0).Value
    
            If row.Index < DataGridView1.Rows.Count - 2 Then strTeste += ","
    
        End If
    
    Next

       Veja também:

    ========================================================
    Classe DataGridView
    https://msdn.microsoft.com/pt-br/library/system.windows.forms.datagridview%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
    ========================================================
    VB.NET 2005 - Criando um DataGridView via código
    http://www.macoratti.net/07/08/vbn5_dvc.htm
    ========================================================

        Agora acertei!!!

    []'s,
    Fabio I.

    terça-feira, 8 de maio de 2018 15:36

Todas as Respostas

  • Rodrigo Pereira de Freitas,

    Dim strTeste As String = "ID 123 456 789"
    
    strTeste = Replace(strTeste.Substring(3), " ", ",")

        Veja também:

    ======================================
    Método String.Substring (Int32, Int32)
    https://msdn.microsoft.com/pt-br/library/aka44szs(v=vs.110).aspx
    ======================================
    Método String.Replace (String, String)
    https://msdn.microsoft.com/pt-br/library/fk49wtc1(v=vs.110).aspx
    ======================================
    Trabalhando Strings no Visual Basic
    http://www.macoratti.net/strings.htm
    ======================================

    []'s,
    Fabio I.
    • Editado Fabio I terça-feira, 8 de maio de 2018 14:25
    terça-feira, 8 de maio de 2018 14:20
  • Bom dia Fábio,

    Me desculpe mas não fui muito correto no exemplo:

    O ID é a Coluna de um datagrid

    os dados 123 456 789 estão nas celulas conforme abaixo.

    Preciso pegar os dados de cada célula da coluna ID e guardar em uma variavel assim strTexto - 123,456,789.

    ID
    123
    456
    789

    terça-feira, 8 de maio de 2018 14:23
  • Rodrigo Pereira de Freitas,

       Ahhh tá! Então que você quer é um SPLIT!

    Dim strTeste As String = "ID 123 456 789"
    Dim arrTeste() As String
    arrTeste = strTeste.Split(" ")

        Veja também:

    =================================================
    Método String.Split (String(), StringSplitOptions)
    https://msdn.microsoft.com/pt-br/library/tabh47cf%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
    =================================================
    VB .NET - Separando Strings com função Split()
    http://www.macoratti.net/10/11/vb_split.htm
    =================================================

    []'s,
    Fabio I.
    • Editado Fabio I terça-feira, 8 de maio de 2018 14:33
    terça-feira, 8 de maio de 2018 14:32
  • Fábio.

    Não é isso.

    Veja, tenho um Datagridview que tem uma Coluna chamada ID.

    para cada linha da coluna ID tem um dado

    No exemplo que mandei são 3 células que possuem os dados:

    Coluna ID

    Célula 1 = 123

    Clelula 2 = 456

    Celula 3 = 789

    Eu preciso atraves de um loop dentro do Datagridview, pegar os dados de todas as celulas da colula ID.

    E guardar os dados em uma variável String = "123,456,789"

    terça-feira, 8 de maio de 2018 14:44
  • Rodrigo Pereira de Freitas,

       OKay... acho que agora entendi... o que você quer é isso:

    Dim strTeste As String = ""
    
    DataGridView1.Rows.Add("123") 'RETIRE ESSA LINHA
    DataGridView1.Rows.Add("456") 'RETIRE ESSA LINHA
    DataGridView1.Rows.Add("789") 'RETIRE ESSA LINHA
    
    For Each row As DataGridViewRow In DataGridView1.Rows
    
        If row.Cells(0).Value <> Nothing Then
    
            strTeste += row.Cells(0).Value
    
            If row.Index < DataGridView1.Rows.Count - 2 Then strTeste += ","
    
        End If
    
    Next

       Veja também:

    ========================================================
    Classe DataGridView
    https://msdn.microsoft.com/pt-br/library/system.windows.forms.datagridview%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
    ========================================================
    VB.NET 2005 - Criando um DataGridView via código
    http://www.macoratti.net/07/08/vbn5_dvc.htm
    ========================================================

        Agora acertei!!!

    []'s,
    Fabio I.

    terça-feira, 8 de maio de 2018 15:36
  • Cara, voce me salvou.

    Só isso que tenho a dizer.

    Muito obrigado, estou o dia todo tentando fazer isso não consegui.

    Salvou meu projeto.

    Obrigado.

    terça-feira, 8 de maio de 2018 15:45
  • Nesse seu código só teve um erro.

    Do jeito que esta ele não inclui a (,) na ultima celula.

    O correto é:

    If row.Index < DataGridView1.Rows.Count - 1 Then strTeste += ","

    Mas deu certinho valeu

    terça-feira, 8 de maio de 2018 15:49
  • Rodrigo Pereira de Freitas,

       Valew! Desculpe a confusão!

    []'s,
    Fabio I.
    terça-feira, 8 de maio de 2018 15:50
  • Rodrigo Pereira de Freitas,

         Outro ponto ... ao invés de usar o Index "0", poderia ter usado o nome da coluna "ID"... acho que fica melhor assim:

    If row.Cells("ID").Value <> Nothing Then
        strTeste += row.Cells("ID").Value

    []'s,
    Fabio I.

    terça-feira, 8 de maio de 2018 16:02
  • Então, não vou usar o nome da coluna por que o ID sempre vai estar na colula 0 mas valeu pela dica.

    Abraço

    terça-feira, 8 de maio de 2018 16:05