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

Listar dados no DataGrid


alexandremanowar

Pergunta

E ae pessoal beleza

Eu tenho um DataGrid e estou exibindo nele os dados de uma tabela access 2007, os dados estão sendo exibidos normalmente mas estou com um problema, os campos do access que estão com o tipo de dados data/hora e formato Hora completa, ele exibe no DataGrid mas exibe uma data que hnão esta no banco por exemplo se o campo Hora no access esta armazenado 10:00:00 ele exibe da seguinte forma no DataGrid 30/12/1899 10:00:00, quando deveria exibir apenas: 10:00:00, o estranho é que no access esta apenas 10:00:00, da onde ele esta tirando essa data estranha e como arrumo isso na minha consulta?

Olha como esta o meu código:

Dim ds As New DataSet()

Dim ExecutarStringSQL As New QuerySQL

ds = ExecutarStringSQL.BuscarDados("select * from cadastro order by nome")

GridFuncionarios.RowHeadersVisible = False

GridFuncionarios.SelectionMode = DataGridViewSelectionMode.FullRowSelect

GridFuncionarios.ReadOnly = True

GridFuncionarios.DataSource = ds.Tables(0)

GridFuncionarios.Columns(1).HeaderText = "Funcionário(s)"

GridFuncionarios.Columns(1).Width = 600

GridFuncionarios.Columns(13).HeaderText = "Função"

GridFuncionarios.Columns(13).Width = 300


GridFuncionarios.Columns(19).HeaderText = "Hora"

GridFuncionarios.Columns(19).Width = 100

GridFuncionarios.Columns(0).Visible = False

GridFuncionarios.Columns(2).Visible = False

GridFuncionarios.Columns(3).Visible = False

GridFuncionarios.Columns(4).Visible = False

GridFuncionarios.Columns(5).Visible = False

GridFuncionarios.Columns(6).Visible = False

GridFuncionarios.Columns(7).Visible = False

GridFuncionarios.Columns(8).Visible = False

GridFuncionarios.Columns(9).Visible = False

GridFuncionarios.Columns(10).Visible = False

GridFuncionarios.Columns(11).Visible = False

GridFuncionarios.Columns(12).Visible = False

GridFuncionarios.Columns(14).Visible = False

GridFuncionarios.Columns(15).Visible = False

GridFuncionarios.Columns(16).Visible = False

GridFuncionarios.Columns(17).Visible = False

GridFuncionarios.Columns(18).Visible = False

GridFuncionarios.Columns(20).Visible = False

GridFuncionarios.Columns(21).Visible = False

GridFuncionarios.Columns(22).Visible = False

A seguinte linha é a coluna que vai receber a hora:

GridFuncionarios.Columns(19).HeaderText = "Hora"

GridFuncionarios.Columns(19).Width = 100

Mas esta exibindo com aquela data estranha junto da hora mesmo no banco access ter armazenado apenas a hora, como faço para retirar essa data estranha?

E no campo que esta apenas no tipo de dados data/hora e formato data abreviada esta armazenado corretamente a data por exemplo 24/09/2008 mas na hora que lista no data grid ele lista 24/09/2008 00:00:00, como tiro essa hora no caso do campo data?

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

E ae beleza

Cara desculpa a demora para responder estive com problemas e tive que abandonar esse projeto por uns tempos e estou voltando agora.

Eu testei o que você me passou e não funcionou é como se não exista essa opção que você passou! Porém o meu problema já vem um pouco antes de exibir no grid acredito que o meu problema esteja no access

Para melhor entendimento vou tentar explicar melhor:

Eu fiz um projetinho usando como banco de dados o access 2007, ele esta fazendo as funções de insert, select, update e delete normalmente, esta apenas com um pequeno problema. No access eu tenho alguns campos que são para armazenar hora e outros para armazenar data, quando criei os de data e hora deixar com a seguintes configurações no access:

Data - tipo de dados - Data/Hora - formato - Data abrevida - Ou seja a data ficaria assim(dd/mm/yyyy)

Hora - tipo de dados - Data/Hora - formato - Hora completa - ficaria assim(hh:mms)

Executei alguns inserts e conferi manualmente dentro do banco e os campos de data e hora estavam corretos por exemplo o campo data: 23/10/2008 e o campo hora 14:28:13 ! Porém quando mando exibir em um label ou DataGrid ele exibie a data dessa forma: 23/10/2008 00:00:00, onde era para exibir apenas 23/10/2008 e se for um campo hora ele exibe assim:30/12/1899 14:28:13, quando deveria exibir 14:28:13, como faço para corrigir isso?

Eu estou fazenda a conexão com o banco da seguinte forma:

Code SnippetDim Origem As String = IO.Path.Combine(Application.StartupPath, "")

Conectar = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Origem + "\banco\banco.accdb;Persist Security Info=False;"

conn = New OleDbConnection(Conectar)
O select é comum por exemplo
select * from cadastro order by nome

E jogo em um DataSet ou label! VocÊ sabe como corrigir esse problema?

Obrigado pela atenção

Editado por alexandremanowar
Link para o comentário
Compartilhar em outros sites

  • 0

E ae Graymalkin beleza

Entendi como fazer cara, fiz de duas formas, quando é exibido no DataGrid fiz dessa forma:

GridFuncionarios.Columns(19).CellTemplate.Style.Format = "T" para hora

GridFuncionarios.Columns(19).CellTemplate.Style.Format = "d" para datas

e quando é para exibir em label fiz assim:

string dateTimeString = "23/10/2008 14:28:13";



DateTime dateTime = DateTime.Parse(dateTimeString);



string date = dateTime.ToShortDateString();

string hour = dateTime.ToLongTimeString();

Se tiver uma forma para melhorar isso posta por favor! Valeu pela ajuda cara

at+

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...