none
Povoar DataGrid RRS feed

  • Pergunta

  • Ola pessoal presiso da ajuda de vocês estou com um problema ao povoar minha  datagrid.

    Eu queria que ela povoasse as seguintes colunas

    • ClCodigo
    • ClNome
    • ClCPF

    Mas quando tento nao consigo ele sisprismente cria todas as colunas da tabela CLIENTES (campos 1ue eu quero mostrar = codigo,nome,cpf)  ja tentei de varias formas mas nao consigo.

    Só pra constar uso o banco de dados do firebird.

    Alguem pode me ajudar

    quarta-feira, 20 de julho de 2011 16:41

Respostas

  • Se você possui uma datagrid pré formatada e não quer vincular um DataSource, vai ter que inserir os dados manualmente.

    'Adiciona as colunas
    DataGridView1.Columns.Add("clCodigo", "Código")
    DataGridView1.Columns.Add("clNome", "Nome")
    DataGridView1.Columns.Add("clCPF", "CPF")
    
    'Percorre seus dados e insere as linhas
    For index As Integer = 1 To 10
    
      Dim linha As New DataGridViewRow
    
      linha.CreateCells(DataGridView1)
      linha.Cells(0).Value = "1"
      linha.Cells(1).Value = "Leonardo"
      linha.Cells(2).Value = "123456789"
    
      DataGridView1.Rows.Add(linha)
    
    Next
    
    Só precisa alterar o For para percorrer seus dados.

    Para mais exemplos, verifique esse link: DataGridView.Rows


    "Mas a persistência é o que leva a perfeição."
    quinta-feira, 21 de julho de 2011 12:26
  • Na sua pergunta voce nao mencionou isto faz assim:

     

     

        Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click

            sql_Encher_Datagridview()

         End Sub

     

     

        Private Sub sql_Encher_Datagridview()

            Dim cnn As SqlConnection = New SqlConnection(ConectionString())

            Dim verificaChaveSenhaComando As New SqlCommand("Select * From Table_Copy", cnn)

            cnn.Open()

     

            Dim sql_adapter As SqlDataAdapter = New SqlDataAdapter(verificaChaveSenhaComando)

            Dim dataset As DataSet = New DataSet()

            sql_adapter.Fill(dataset)

     

            If dataset.Tables(0).Rows.Count > 0 Then

     

                For i As Integer = 0 To dataset.Tables(0).Rows.Count - 1

                    DataGridView1.Rows.Add(dataset.Tables(0).Rows(i)("FirstName").ToString(), "" + dataset.Tables(0).Rows(i)("LastName").ToString() _

                                            , "" + dataset.Tables(0).Rows(i)("IDD").ToString())

     

                Next

            End If

     

            cnn.Close()

            sql_adapter.Dispose()

        End Sub


    One word frees us of all the weight and pain of life: that word is love.
    sexta-feira, 22 de julho de 2011 22:28
    Moderador

Todas as Respostas

  • Provavelmente você está executando um SELECT com * e atribuindo o retorno dessa pesquisa como datasource da grid. Se for o caso e você for usar apenas essas 3 colunas, mude seu "SELECT *" para "SELECT clcodigo, clnome, clcpf ...".

    Caso haja a necessidade de você usar mais colunas, mas apenas querer mostrar essas três, você terá que formatar a grid, após o povoamento.

    DataGridView1.Columns(Indice).Visible = False
    


     


    "Mas a persistência é o que leva a perfeição."
    quarta-feira, 20 de julho de 2011 17:53
  • Como o leonardo disse, se fizeres um select especifico com os campos que queres mostrar, a sua gridview vai mostrar apenas este campos. A outra alternativa seria:

    dataGridView1.Columns.Remove("escrve aqui o nome da coluna a apagar")


    One word frees us of all the weight and pain of life: that word is love.
    quarta-feira, 20 de julho de 2011 21:03
    Moderador
  • cara, debugga o codigo ai que fica mais facil da gente fala pra vc
    Jean Felipe
    Email: jeanfelipfiais@hotmail.com
    Twitter: @JeanFelipe_

    “Código ruim não é ruim, é apenas mal compreendido.”

    Se Maomé não vai até a montanha, ela envia um e-mail...
    quarta-feira, 20 de julho de 2011 22:18
  • Testei as duas formas e deram certas mas nenhuma fez o que eu queria.

    Eu quero que os dados sejam mostrados nas colunas que eu criei no datagrid e nao que fosse criado pelo datasource como é a unica forma que eu apreendi

    quinta-feira, 21 de julho de 2011 00:08
  • Se você possui uma datagrid pré formatada e não quer vincular um DataSource, vai ter que inserir os dados manualmente.

    'Adiciona as colunas
    DataGridView1.Columns.Add("clCodigo", "Código")
    DataGridView1.Columns.Add("clNome", "Nome")
    DataGridView1.Columns.Add("clCPF", "CPF")
    
    'Percorre seus dados e insere as linhas
    For index As Integer = 1 To 10
    
      Dim linha As New DataGridViewRow
    
      linha.CreateCells(DataGridView1)
      linha.Cells(0).Value = "1"
      linha.Cells(1).Value = "Leonardo"
      linha.Cells(2).Value = "123456789"
    
      DataGridView1.Rows.Add(linha)
    
    Next
    
    Só precisa alterar o For para percorrer seus dados.

    Para mais exemplos, verifique esse link: DataGridView.Rows


    "Mas a persistência é o que leva a perfeição."
    quinta-feira, 21 de julho de 2011 12:26
  • Se você possui uma datagrid pré formatada e não quer vincular um DataSource, vai ter que inserir os dados manualmente.

     

    'Adiciona as colunas
    DataGridView1.Columns.Add("clCodigo", "Código")
    DataGridView1.Columns.Add("clNome", "Nome")
    DataGridView1.Columns.Add("clCPF", "CPF")
    
    'Percorre seus dados e insere as linhas
    For index As Integer = 1 To 10
    
     Dim linha As New DataGridViewRow
    
     linha.CreateCells(DataGridView1)
     linha.Cells(0).Value = "1"
     linha.Cells(1).Value = "Leonardo"
     linha.Cells(2).Value = "123456789"
    
     DataGridView1.Rows.Add(linha)
    
    Next
    
    Só precisa alterar o For para percorrer seus dados.

     

    Para mais exemplos, verifique esse link: DataGridView.Rows


    "Mas a persistência é o que leva a perfeição."
    É possível vincular uma grid pre formatada ao data source? poste um exemplo por favor.
    quinta-feira, 21 de julho de 2011 17:12
  • Na sua pergunta voce nao mencionou isto faz assim:

     

     

        Private Sub Button4_Click(sender As System.Object, e As System.EventArgs) Handles Button4.Click

            sql_Encher_Datagridview()

         End Sub

     

     

        Private Sub sql_Encher_Datagridview()

            Dim cnn As SqlConnection = New SqlConnection(ConectionString())

            Dim verificaChaveSenhaComando As New SqlCommand("Select * From Table_Copy", cnn)

            cnn.Open()

     

            Dim sql_adapter As SqlDataAdapter = New SqlDataAdapter(verificaChaveSenhaComando)

            Dim dataset As DataSet = New DataSet()

            sql_adapter.Fill(dataset)

     

            If dataset.Tables(0).Rows.Count > 0 Then

     

                For i As Integer = 0 To dataset.Tables(0).Rows.Count - 1

                    DataGridView1.Rows.Add(dataset.Tables(0).Rows(i)("FirstName").ToString(), "" + dataset.Tables(0).Rows(i)("LastName").ToString() _

                                            , "" + dataset.Tables(0).Rows(i)("IDD").ToString())

     

                Next

            End If

     

            cnn.Close()

            sql_adapter.Dispose()

        End Sub


    One word frees us of all the weight and pain of life: that word is love.
    sexta-feira, 22 de julho de 2011 22:28
    Moderador
  • Você deve setar a propriedade do datagridview AutoGenerateColumns como False via código, pode ser no evento load do seu form. Dessa forma você pode criar manualmente as colunas e na propriedade DataPropertyName você coloca nome da coluna que vem do banco no select. Aí é só setar o datasource.
    Bruno Ferreira de Souza
    MSP - Microsoft Student Partner
    MCTS .NET Framework - Windows Applications
    MCPD .NET Framework - Windows Applications
    www.maestrodotnet.com.br
    @BrunoMaestro
    segunda-feira, 25 de julho de 2011 02:14