2014-10-09 59 views
1

我正在制作一个程序来保存并显示Visual Basic .NET中的匹配统计信息。 现在我只是在我的程序中显示日期时遇到问题。 从数据库(MS Access)读取,并显示在DataGridView中的所有内容。在DataGridView中显示没有时间的DateTime

要显示日期,我使用行dgvWedstrijden.Rows.Item(n).Cells(1).Value = dataReader(1).Date。 但是当我这样做时,日期显示为9/10/2014 00:00:00。 如果我不输入.Date,那么小时不是00:00:00,而是14:15:26

相反,我行之前显示的,我也用:

Dim datum As DateTime = FormatDateTime(dataReader(1), 1) 
dgvWedstrijden.Rows.Item(n).Cells(1).Value = datum.Date 

但是这给了相同的结果。

有人可以帮助我如何显示日期没有时间(所以没有00:00:00)?我不能使用ToString,因为那是不可能按日期排列的。

谢谢

Public Sub updateWedstrijden() 
    Dim con As New OleDb.OleDbConnection 
    Dim dbProvider As String 
    Dim dbSource As String 
    Dim dataReader As OleDbDataReader 
    Dim addnewcommand = New OleDb.OleDbCommand 

    dbProvider = "PROVIDER=Microsoft.ACE.OLEDB.12.0;" 
    dbSource = "Data Source = D:\De Koarters\Kalender\Minivoetbal\Minivoetbal\DatabaseMinivoetbal.accdb" 
    con.ConnectionString = dbProvider & dbSource 

    dgvWedstrijden.Rows.Clear() 

    addnewcommand = New OleDb.OleDbCommand("SELECT SeizoenTornooi,Datum,Startuur,Tegenstander,DoelpuntenTegen,DoelpuntenVoor FROM Wedstrijden", con) 
    con.Open() 

    dataReader = addnewcommand.ExecuteReader 
    While dataReader.Read() 
     Dim n As Integer = dgvWedstrijden.Rows.Add() 
     dgvWedstrijden.Rows.Item(n).Cells(0).Value = dataReader(0) 
     dgvWedstrijden.Rows.Item(n).Cells(1).Value = dataReader(1).Date 
     dgvWedstrijden.Rows.Item(n).Cells(2).Value = dataReader(2).ToString.Substring(0, 2) & "u" & dataReader(2).ToString.Substring(2, 2) 
     dgvWedstrijden.Rows.Item(n).Cells(3).Value = dataReader(3) 
     dgvWedstrijden.Rows.Item(n).Cells(4).Value = dataReader(4) & "-" & dataReader(5) 
    End While 

    dataReader.Close() 
    con.Close() 

    dgvWedstrijden.Sort(dgvWedstrijden.Columns(0), ListSortDirection.Ascending) 
End Sub 

回答

2

这只是formatting问题,存储在单元格中的日期所以你会在订货不松动一部分时间,并更改列格式,只显示日期部分:

dgvWedstrijden.Columns(1).DefaultCellStyle.Format = "d" 

While dataReader.Read() 
    dgvWedstrijden.Rows.Item(n).Cells(1).Value = dataReader(1) 
End While 
+0

非常感谢,这帮助我很好:) – 2014-10-10 13:01:28

0

不是在那里逐个单元地操作字符串,而是可以格式化dgv上的列。应该让你保留类型,以便稍后进行更简单的排序。

dgView.Columns["<Column Name Here>"].DefaultCellStyle.Format = "dd/MMM/yyyy"