2016-10-08 1 views
2

Ich habe eine Datagridview und wenn ich auf eine Schaltfläche klicken möchte ich meine Textfelder auffüllen und eine davon ist ein Textfeld, das nur das Datum enthält. Die Daten werden aus einer MySQL-Datenbank abgerufen und der Datentyp ist Datum. Es gibt immer 12:00 Wenn ich Daten abrufe. Ich habe eine Zelle Inhalt Click-EreignisEntfernen Sie TIME von DATE in einem Textfeld C#

Hier ist mein Code:

Txtreqshipdate.Text = Convert.ToDateTime(row.Cells[9].Value).ToString("MM/dd/yyyy"); 

Fehlermeldung:

Die Saite war ungültig Datetime. Es gibt ein unbekanntes Wort in Index 0

Antwort

4

Verwenden DateTime.ParseExact()

DateTime back =DateTime.ParseExact("yyyy-MM-dd",row.Cells[9].Value, CultureInfo.InvariantCulture); 

Txtreqshipdate.Text = back; 
+0

Es gibt keine CultureInfo, aber CultureInfoConverter. – Philip

+0

@Philip was meinst du? – Sajeetharan

+0

Wenn ich versuche, CultureInfo einzugeben, muss CultureInfoConverter – Philip

2

zur Handhabung dieses in C# Als Alternative beginnen, könnten Sie auch MySQL verwenden DATE_FORMAT die datetime in einen String, wie Sie formatiert konvertieren wollen:

DATE_FORMAT(datetime, '%M/%d/%Y') 

Dann vermutlich Ihr Code würde vereinfachen zu:

Txtreqshipdate.Text = row.Cells[9].Value; 

Dieser Ansatz könnte der Verarbeitung der Konvertierung in C# vorzuziehen sein, da die App-Schicht dadurch keine Sorgen mehr über Datenbankspaltentypen hat.

+0

Wie genau kann ich DATE_FORMAT verwenden? – Philip

+0

@Philip Allerdings wurde der Wert in Ihrer Abfrage ausgewählt, verwenden Sie einfach 'DATE_FORMAT', wie ich oben _before_ habe es in C# bringen. Dann ist es schon eine Zeichenfolge und Sie sollten sich nicht mit dem Konvertierungsproblem befassen müssen. –

+0

Sie können es mit C# oder MySQL formatieren. Das obige formatiert die DateTime in der Abfrage direkt. Oder Sie können sogar in C# von @Sajeetharan formatieren. –