DataGridView

Este é um controle poderoso para exibir dados na tela, tem muitas opções, tente ver um exemplo simples e, em seguida, mencionar tudo o que eu uso quando se trabalha com um DataGridView.

 "Conecte-se ao banco de dados e obtenção dos registros em um DataTable
 Dim cnn As New SqlConnection
 cnn.ConnectionString = _
 "Data Source = .. \ SQLEXPRESS; Initial Catalog = BasedePrueba;
 Integrated Security = True "

 "Algumas linhas deste código teve de ser dividido
 'Não EKL entrar largura da tela.

 cnn.Open ()

 Dim ds As New DataSet
 Da Dim New SqlDataAdapter

 Dim sql As String
 sql = "Select * from SaldosClientes"
 da.SelectCommand = New SqlCommand (sql, cnn)
 da.Fill (ds)
 cnn.Close ()

 "Com esta linha eu recebo um DataTable
 "(Dt) com os registros resultantes
 Dt Dim DataTable = ds.Tables (0)

 "Agora eu posso atribuir o DataTable (dt) para DataGridView1
 DataGridView1.DataSource = dt

Com o código acima o suficiente para encher o nosso DataGridView primeiro. Agora vamos ver o que mais podemos fazer com esse controle.

 'Definir qual fonte usar
 DataGridView1.Font = _
     Nova Drawing.Font ("Tahoma", 8, FontStyle.Regular, GraphicsUnit.Point

 "Que colunas são visíveis
 DataGridView1.Columns ("Id"). Visible = False
 DataGridView1.Columns ("Código"). Visible = True
 DataGridView1.Columns ("RazonSocial"). Visible = True
 DataGridView1.Columns ("Data"). Visible = True
 DataGridView1.Columns ("Balance"). Visible = True

 'O que vai ser a ordem das colunas
 DataGridView1.Columns ("Id"). DisplayIndex = 0
 DataGridView1.Columns ("Código"). DisplayIndex = 1
 DataGridView1.Columns ("RazonSocial"). DisplayIndex = 2
 DataGridView1.Columns ("Data"). DisplayIndex = 3
 DataGridView1.Columns ("Balance"). DisplayIndex = 4

 "Largura de colunas
 DataGridView1.Columns ("Id"). Largura = 100
 DataGridView1.Columns ("Código"). Largura = 100
 DataGridView1.Columns ("RazonSocial"). Largura = 100
 DataGridView1.Columns ("Data"). Largura = 100
 DataGridView1.Columns ("Balance"). Largura = 100

 "O cabeçalho da coluna
 DataGridView1.Columns ("Id"). HeaderText = "Id"
 DataGridView1.Columns ("Código"). HeaderText = "Código"
 DataGridView1.Columns ("RazonSocial"). HeaderText = "Nome"
 DataGridView1.Columns ("Data"). HeaderText = "Data"
 DataGridView1.Columns ("Balance"). HeaderText = "Balance"

 "O alinhamento das células em cada coluna
 DataGridView1.Columns ("Id"). DefaultCellStyle.Alignment = _
 DataGridViewContentAlignment.BottomRight

 DataGridView1.Columns ("Código"). DefaultCellStyle.Alignment = _
 DataGridViewContentAlignment.BottomLeft

 DataGridView1.Columns ("RazonSocial"). DefaultCellStyle.Alignment = _
 DataGridViewContentAlignment.BottomLeft

 DataGridView1.Columns ("Data"). DefaultCellStyle.Alignment = _
 DataGridViewContentAlignment.BottomLeft

 DataGridView1.Columns ("Balance"). DefaultCellStyle.Alignment = _
 DataGridViewContentAlignment.BottomRight

 "O cabeçalho de cada coluna alinación
 DataGridView1.Columns ("Id"). HeaderCell.Style.Alignment = _
 DataGridViewContentAlignment.BottomRight

 DataGridView1.Columns ("Código"). HeaderCell.Style.Alignment = _
 DataGridViewContentAlignment.BottomLeft

 DataGridView1.Columns ("RazonSocial"). HeaderCell.Style.Alignment = _
 DataGridViewContentAlignment.BottomLeft

 DataGridView1.Columns ("Data"). HeaderCell.Style.Alignment = _
 DataGridViewContentAlignment.BottomLeft

 DataGridView1.Columns ("Balance"). HeaderCell.Style.Alignment = _
 DataGridViewContentAlignment.BottomRight

 "O formato das colunas numéricas
 DataGridView1.Columns ("Balance"). DefaultCellStyle.Format = "# # # # 0,00"

Bem, eu passei muito tempo procurando todas essas configurações para deixar um DataGridView como eu gostava. Espero que seja útil e vou enviar o mais breve sobre esse controle de dados grande.

22 Responses to "DataGridView"

  1. [...] 12, 2009 Hoje eu quero mostrar um exemplo simples de como se conectar ao SQL Server e preencher um DataGridView, mas sem escrever uma única linha de código. Isso significa que vamos arrastar e soltar [...]

  2. José Luis Pérez diz:

    Obrigado,

    Estes exemplos são muito bons, especialmente com a simplicidade que explicar.

    Parabéns.

  3. Jose diz:

    Muito boa sua explicação, mas me pergunto se você puder me ajudar, para ver como fazê-lo em sentido inverso, ou seja, tendo os dados em um DataGridView (exemplo 1 linha e 4 colunas), adicionar uma nova linha em um banco de dados as mesmas características (1 linha, 4 colunas), muito aprecio sua ajuda. Obrigado.

  4. David C. disse:

    Obrigado pelo exemplo de enchimento e configuração do datagridview, servi bem.

  5. Rodrigo Cáceres diz:

    Parabéns, pura e simples ... um modelo

  6. ROOT HACKER GONZALO diz:

    GRAIAS INFORMAÇÃO PARA ESTE muito bem explicado quanto eu tenho vindo a servir a sua ajuda.

    :-)

  7. Alexander diz:

    Ei, obrigado para as seguintes informações SO VERDADE, excelentemente explicado e FUNCIONAL que usamos o DataGrid programadores muitas vezes

  8. Juan Osuna diz:

    Olá Eu tenho uma pergunta que atormenta-me há dias,
    e descobrir o índice da linha que eu selecionei em um datagridview.
    para formar e passá-lo mesmo me ensinou os detalhes completos no formulário que estou enlouquecendo

  9. DarkRex diz:

    Muito bom
    mas eu gosto de saber como validar dados inseridos em uma célula do tipo DataGridView coluna é data e um maskeditbox.

  10. Nathalia Gomez diz:

    E para fazer todos os tipos de validação

  11. Sanclemente gino diz:

    oi tudo .. q eu gostaria de me ajudar porque eu estou trabalhando com um q q contém um datagridview objeto DataGridViewComboBoxColumn codificar i ir para ver se eu ajudá-lo a encontrar um erro ou você não tem q: Private Sub BtnAddRequisito_Click (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddRequisito.Click
    Dim String = Negocio.Conexion sConexion
    Como Ds_datos New DataSet Dim
    As String Dim CboRequisitoColumn.Name sQuery = "Assunto"
    Me.DGVMaterias.Columns.Add (CboRequisitoColumn)
    sQuery = "SELECT asg_codigo como descrição do código, DE ONDE asg_nombre como spsatbasignatura asg_semestre <" & Me.CMBSemestre.Text Ds_datos = Accesar_Datos.GetDataSet (sQuery, sConexion)
    my_DGVCboColumn.DataSource Ds_datos.Tables = (0)
    my_DGVCboColumn.Name = "Data"
    my_DGVCboColumn.DisplayMember = Ds_datos.Tables (0). Columns ("description"). ToString
    my_DGVCboColumn.ValueMember = Ds_datos.Tables (0). Columns ("número"). Me.DGVMaterias.Columns.RemoveAt ToString (0)
    Me.DGVMaterias.Columns.Insert (0, my_DGVCboColumn)
    Sub'el final acima cria a grade
    "O seguinte é onde eu quero
    "Atribuir ou inserir o código dá-me q
    "My_DGVCbocolumn objeto q está dentro do q DGVMaterias xq eu acho que não deve
    "Consulte a Agregar_Requisitos Sub CboRequisitoColumnPrivate ()
    SQuery Dim String = ""
    Dim String = Negocio.Conexion sConexion
    Como Ds_Datos New DataSet Dim
    Krow Dim As Integer = 0
    Dim aux As String
    Tente r Dim As Integer = 0 To Krow Para Me.DGVMaterias.RowCount - 1
    aux = Me.my_DGVCboColumn.Items (Krow). ToString
    r = CType (aux, Integer)
    sQuery = "spi_spsatbrequisito_asignatura" Código & "" & r & ""
    Ds_Datos = Accesar_Datos.GetDataSet (sQuery, sConexion)
    Krow próxima
    Catch ex As Exception
    MsgBox (ex.Message, MsgBoxStyle.Critical, "Erro")
    Graças End Sub TryEnd de antecedência

  12. Modo diz:

    Hey. Obrigado por este post como útil. Eu estava enlouquecendo tentando adivinhar como a alienação de forma diferente para cada coluna. De qualquer forma, eu coloquei o código correspondente no evento Load do formulário que tem a dataGrid e dá-me erro. Eu disse que se referir a um objeto que não existe. Alguém sabe por que isso é? Talvez eu devesse colocar o código em outro procedimento de evento diferente? Obrigado.

  13. Mel86 disse:

    Olá .. Eu espero que você leia este comentário .. Eu gostaria de saber que possuía datagrid me pegar não. ID do cliente para clicar.

    Elemplo ... se eu olhar para as pessoas que vivem no lugar X e eu somos 2 no datagrid, para lhe dar duplo clique na célula do número recorde de caixa de texto eu me encheu os dados. O que é que, dando-me 2 registros de dados de pesquisa regustro passado não o primeiro ou terceiro .. OBRIGADO usar um ciclo no C1_CellDoubleClick evento (datagrid)
    Para x As Integer = 0 To (C1.RowCount - 2)
    C1.Item Label3.Text = (0, x). Valor
    Próximo

  14. Enrique diz:

    Olá! Eu sou novo para o DataGridView,
    Eu estou trabalhando com Visual Stuio 2008,

    Minha pergunta é:

    Eu tenho um DataGridView e eu estou passando os dados através de um "PictureBox" (produto, preço, e catidad total)
    CLIQUE para dar a imagem 1, as células preenchidas com um "ImputBox" Eu perguntei quanto e torna a operação (preço * = valores totais)

    Mas ...

    Para fazer o mesmo com a imagem ao lado, ou com a mesma imagem, DATA eu sempre coloco na mesma linha!

    Como eu posso dar a você para cada k tempo das IMAGENS CLCK me lidar com a linha que é ...?

    Apreciaria muito essa contribuição!

  15. Mombiela Jaime diz:

    Muito obrigado.
    Exemplos muito bons.

  16. Jose diz:

    Saudações amigo, obrigado pelo código

  17. Fernando Cáceres Guillermo Illanes diz:

    Muito obrigado para a entrada, por dias e vêm à procura de um exemplo, ela combine com meu código e compilar muito bem ..

  18. Jordi diz:

    Eu me pergunto se datagridview controle permite que você agrupe várias linhas com um campo comum. Eu posso fazer?

    Obrigado

  19. Marcelo diz:

    TENHO UMA DÚVIDA COM GRIDWIEV, alterar a consulta e eu não carregar a grade na tela que pode ser isso me afeta QUE?

    SAUDAÇÕES E AGRADECIMENTOS

    • Eliseu diz:

      se eu especificar um pouco mais o problema e você me mostra a linha em questão pode ser capaz de ajudar.

Comentar