FORMATAR DATA
Creio que deve ser um problema facil de resolver, mas ja quebrei a cabeça e não consegui.
Seguinte:
Tenho datas armazenadas no banco e quando retorno os valores eles vem assim: 13/01/2011 00:00:00, preciso que venha somente a data e não as horas juntos ou seja preciso que retorne somente 13/01/2011.
Minha query:
[ô]cria um objeto command
OleObitos = New OleDbCommand([Ô]SELECT Nome, Data_falecimento, Data_sepultamento, Plano, Usuario, [Ô] & _
[Ô]Codigo FROM Obitos ORDER BY Nome[Ô], OpenDB)
Dim leitor As OleDbDataReader = OleObitos.ExecuteReader
Dim i As Integer = 0
[ô] ESTE PROCEDIMENTO JA TRAZ AS COLUNAS PRONTAS do banco COM O NOME DOS CAMPOS
[ô]For i = 0 To leitor.FieldCount - 1
[ô] ListObitos.Columns.Add(leitor.GetName(i).ToString, 110, HorizontalAlignment.Left)
[ô]Next
[ô]Criando as Colunas
ListObitos.Columns.Add([Ô]Nome[Ô], 350, HorizontalAlignment.Left)
ListObitos.Columns.Add([Ô]Falecimento[Ô], 200, HorizontalAlignment.Center)
ListObitos.Columns.Add([Ô]Sepultamento[Ô], 200, HorizontalAlignment.Center)
ListObitos.Columns.Add([Ô]Plano[Ô], 150, HorizontalAlignment.Left)
ListObitos.Columns.Add([Ô]Usuario[Ô], 150, HorizontalAlignment.Left)
ListObitos.Columns.Add([Ô]Codigo[Ô], 150, HorizontalAlignment.Right)
ListObitos.View = View.Details
Do While leitor.Read()
Dim novoitem As New ListViewItem()
novoitem.Text = leitor(0)
For i = 1 To leitor.FieldCount - 1
If leitor(i) Is DBNull.Value Then
novoitem.SubItems.Add([Ô] [Ô])
Else
novoitem.SubItems.Add(leitor.Item(i).ToString)
End If
Next
ListObitos.Items.Add(novoitem)
Loop
Onde eu devo formatar para não aparecer as horas???
O banco é em access.
Seguinte:
Tenho datas armazenadas no banco e quando retorno os valores eles vem assim: 13/01/2011 00:00:00, preciso que venha somente a data e não as horas juntos ou seja preciso que retorne somente 13/01/2011.
Minha query:
[ô]cria um objeto command
OleObitos = New OleDbCommand([Ô]SELECT Nome, Data_falecimento, Data_sepultamento, Plano, Usuario, [Ô] & _
[Ô]Codigo FROM Obitos ORDER BY Nome[Ô], OpenDB)
Dim leitor As OleDbDataReader = OleObitos.ExecuteReader
Dim i As Integer = 0
[ô] ESTE PROCEDIMENTO JA TRAZ AS COLUNAS PRONTAS do banco COM O NOME DOS CAMPOS
[ô]For i = 0 To leitor.FieldCount - 1
[ô] ListObitos.Columns.Add(leitor.GetName(i).ToString, 110, HorizontalAlignment.Left)
[ô]Next
[ô]Criando as Colunas
ListObitos.Columns.Add([Ô]Nome[Ô], 350, HorizontalAlignment.Left)
ListObitos.Columns.Add([Ô]Falecimento[Ô], 200, HorizontalAlignment.Center)
ListObitos.Columns.Add([Ô]Sepultamento[Ô], 200, HorizontalAlignment.Center)
ListObitos.Columns.Add([Ô]Plano[Ô], 150, HorizontalAlignment.Left)
ListObitos.Columns.Add([Ô]Usuario[Ô], 150, HorizontalAlignment.Left)
ListObitos.Columns.Add([Ô]Codigo[Ô], 150, HorizontalAlignment.Right)
ListObitos.View = View.Details
Do While leitor.Read()
Dim novoitem As New ListViewItem()
novoitem.Text = leitor(0)
For i = 1 To leitor.FieldCount - 1
If leitor(i) Is DBNull.Value Then
novoitem.SubItems.Add([Ô] [Ô])
Else
novoitem.SubItems.Add(leitor.Item(i).ToString)
End If
Next
ListObitos.Items.Add(novoitem)
Loop
Onde eu devo formatar para não aparecer as horas???
O banco é em access.
Tente substituir esse comando...
Por este...
novoitem.SubItems.Add(leitor.Item(i).ToString)
Por este...
Dim Item as String = leitor.Item(i).ToString
novoitem.SubItems.Add(IIf(IsDate(Item), Format(CDate(Item), [Ô]dd/MM/yyyy[Ô]), Item))
JONATHANSTECKER
Não deu certo porque os campos contem strings tambem e não só data, da erro quando encontra um campo string ou numerico
Não deu certo porque os campos contem strings tambem e não só data, da erro quando encontra um campo string ou numerico
Assim é para funcionar...
Dim Item as String = leitor.Item(i).ToString
If IsDate(Item) Then
novoitem.SubItems.Add(Format(CDate(Item), [Ô]dd/MM/yyyy[Ô]))
Else
novoitem.SubItems.Add(Item)
End If
Opa blz, deu certinho, obrigado!
Tópico encerrado , respostas não são mais permitidas