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

Formatar campo em Datagridview


Macêdo

Pergunta

Bom pessoal, até que achei outros tópicos com esta mesma duvida, porém a resolução no meu projeto não deu certo...

Vejam como estou preenchendo o DataGridView com os dados de minha Tabela, porém o campo (Nascimento) , que é data, quero formatá-lo para "dd/mm/yyyy" mas não estou conseguindo:

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Text_nome.TextChanged

        If Text_nome.Text <> "" Then

            'joga os dados da tabela no DataGridView

            Dim ds As New DataSet()
            Dim da As New OleDb.OleDbDataAdapter("select cod, nome, cpf, RG, telefone, celular, nascimento, endereco from clientes where nome like '" & Text_nome.Text & "%'", cnn)
            Dim dt As New DataTable
            da.Fill(dt)
            'carrega o datagridview com os dados do datatable
            DataGridView1.DataSource = dt
            'modo para selecionar linha inteira
            DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
            'bloqueia edição
            DataGridView1.ReadOnly = True
            'Nome das colunas
            DataGridView1.Columns.Item(0).HeaderText = "Código"
            DataGridView1.Columns.Item(1).HeaderText = "Nome"
            DataGridView1.Columns.Item(2).HeaderText = "CPF"
            DataGridView1.Columns.Item(3).HeaderText = "RG"
            DataGridView1.Columns.Item(4).HeaderText = "Telefone"
            DataGridView1.Columns.Item(5).HeaderText = "Celular"
            DataGridView1.Columns.Item(6).HeaderText = "Nascimento"
            DataGridView1.Columns.Item(7).HeaderText = "Endereço"
            'colunas com expansão para o tamanho do texto
            DataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
        End If

    End Sub

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

então macedo, não sei como os otros fazem por ai, mas eu só consigo fazer convertendo a data pra string. tipo, pra por o formato você tem q converter a data pra string.

o q eu faco é declarar um datatable, e declarar as colunas deles definindo o tipo, e depois eu faco um loop adicionando linha por linha. exemplo:

Dim cm As New OleDb.OleDbCommand("Select Codigo, Nome, Data From Tabela", cn)
        Dim rs As OleDb.OleDbDataReader = cm.ExecuteReader()

        Dim dt As New DataTable("Tabela")

        dt.Columns.Add(New DataColumn("Código", (New Integer).GetType()))
        dt.Columns.Add(New DataColumn("Nome", (New String("")).GetType()))
        dt.Columns.Add(New DataColumn("Data", (New String("")).GetType())) 'Aqui declaro como String

        Do While rs.Read()
            Dim dr As DataRow = dt.NewRow()

            dr(0) = rs("Codigo")
            dr(1) = rs("Nome")
            dr(2) = Format(rs("Data"), "dd/MM/yyyy") 'Aqui eu passo o formato

            dt.Rows.Add(dr)
        Loop

        rs.Close()
        cn.Close()

        DataGridView1.DataSource = dt[/code]

não sei se essa é melhor forma, tipo, o tempo q você gasta adicionando linha por linha deve ser maior do q se você usar o fill(), mas acho q a diferenca não é tão gde não.

Link para o comentário
Compartilhar em outros sites

  • 0

http://msdn.microsoft.com/en-us/library/f9x2790s.aspx

Um exemplo. A formatação é feita através da propriedade DefaultCellStyle de uma coluna. Nessa propriedade, temos a propriedade Format.

Falows!

Link para o comentário
Compartilhar em outros sites

  • 0

Kuroi, obrigado vou testar seu código depois, pois estou começando no VB.NET agora e dá forma que comecei a escrever o código está mais claro para mim, este seu código eu teria que mudar o codigo por completo...mas com certeza irei estudá-lo mais tarde. Tenho que estudar bastante ainda para tirar duvidas do que é um DATASET, um DATATABLE, um DATAADAPTER, um DATAREADER...só o COMMAND e o CONNECTION que acho que posso entender como os mesmo que usava na ADO, sinto falta do RECORDSET hehehehe

Denis, seguindo sua dica acrescentei a linha

DataGridView1.Columns.Item(6).DefaultCellStyle.Format = "dd/mm/yyyy"
Mas a data esta aparecendo o DIA e o ANO certo, porem o Mês aparece 00, assim: 01/00/1981, outra 05/00/1977 Quando altero o codigo, trocando o mês de local, para este:
DataGridView1.Columns.Item(6).DefaultCellStyle.Format = "mm/dd/yyyy"

A data aparece o DIA e o ANO certo, porem o Mês continua a aparecer 00, assim: 00/01/1981, outra 00/05/1977

Tem uma saida pra isto ?

Agradeço desde já ...

Link para o comentário
Compartilhar em outros sites

  • 0

El Pablón, seja bem vindo ao Fórum ScriptBrasil, de uma olhada em nossas regras: Regras do Fórum

Apesar de sua boa intenção de auxiliar o tópico já é bem antigo não tinha necessidade de "reanimá-lo", agora se quiser contruir com respostas nos tópicos atuais será muito bom.

Abraços...

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...