2014-10-09 63 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"