2016-06-29 13 views
1

Ich habe einen Datum Speicher in MySQL Datenbank mit dem Format Datetime.Nur Datum in der Spalte von Datagridview

Ich möchte in einem DataGridViewnur das Datum setzen, aber wenn ich versuche, bekomme ich das Datum mit den folgenden Stunden, so etwas wie:

29/06/2016 12:01:21 

Ich habe versucht, das Datum direkt von den zu finden MySQL Abfrage mit der DATE() Funktion, aber es immer noch nicht funktioniert, weil in meinem DataGridView sehe ich das Datum wie folgt formatiert:

29/06/2016 00:00:00 

Schließlich habe ich versucht, Seite Code, um die Spalte zu setzen, aber ohne Ergebnis

dataGridView.Columns[1].DefaultCellStyle.Format = "dd/MM/yyyy"; 

Ich benutze DataSource zu „link“ meine Daten zu meinem DataGridView.


Dies ist der Code:

var dataTable = listOfResult.ToDataTable(); //ToDataTable() Function that convert List into DataTable 
dataGridView.DataSource = dataTable; 
dataGridView.Columns[1].DefaultCellStyle.Format = "dd/MM/yyyy"; 

Die listOfResult ist eine Liste mit solchen dynamischen, wo innerhalb dort alle Termine sind.

Funktion ToDataTable()

public static DataTable ToDataTable(this IEnumerable<dynamic> items) 
    { 
     var data = items.ToArray(); 
     if (!data.Any()) return null; 

     var dt = new DataTable(); 
     foreach (var key in ((IDictionary<string, object>) data[0]).Keys) 
      dt.Columns.Add(key); 

     foreach (var d in data) 
      dt.Rows.Add(((IDictionary<string, object>) d).Values.ToArray()); 

     return dt; 
    } 
+0

http://stackoverflow.com/questions/5050102/convert-datetime-to-date-format-dd-mm-yyyy –

+0

@ OffirPe'er - Ich verwende DataBinding, um mein "Datum" mit meinem DataGridView zu verknüpfen. Ich habe aus meiner Datenbank das Datum und die Datenansicht gelesen. –

+1

Bitte Code – Mairaj

Antwort

1

TaW Recht. Stellen Sie den Datentyp:

dt.Columns.Add(key); 

mit

dt.Columns.Add(key, typeof(DateTime)); 

für die gewünschten Spalten ersetzen.

+0

Ich benutze DataSource, also erstelle ich nicht manuell die Spalten. Ich versuche 'datagrid.Columns [1] .ValueType = typeof (DateTime);' aber es funktioniert nicht –

+0

Dies ist nicht über die Spalten der DGV sondern über die DataTable Spalte, so denke ich, dass dies funktionieren sollte! – TaW

+0

@TaW - Ich habe, wie vorgeschlagen, in der Funktion, das die Liste in 'DataTable' umwandelt I eine Prüfung durchgeführt habe, dass, wenn die Daten überprüft, vom Typ' DateTime' in diesem Fall die Spalte auferlegt, während als solche Schaffung –

Verwandte Themen