2017-12-20 3 views
0

Ich habe nur Jahr von Datetime Picker in die Datenbank speichern.Wie konvertiert man Zeichenfolge in Datumsformat (Duplikat)

 sesiontimepicker.Format = DateTimePickerFormat.Custom; 
        sesiontimepicker.CustomFormat = "yyyy"; 

    cmd.Parameters.Add("@sesion", sesiontimepicker.Text); 

Mit diesem Code nur Jahr speichert in der Datenbank war .Jetzt ich es retreive will, aber es einen Fehler von geben „string wurde nicht als gültige Datetime erkannt“.

 sesiontimepicker.Value = Convert.ToDateTime(read["sesion"]); 

       sesiontimepicker.Format = DateTimePickerFormat.Custom; 
       sesiontimepicker.CustomFormat = "yyyy"; 

Jeder Körper kann helfen, dies zu lösen.

+0

Wie kann nur ein Jahr in eine DateTime konvertiert werden? – Plutonix

+0

Auch wenn Sie das getan haben, wie 'new DateTime (Convert.ToInt32 (yearFromDatabase), x, x)' Was werden Sie anstelle von x, x einfügen? willkürliche Werte für Monat und Tag? – Mahmoud

+0

sesiontimepicker.Value = new DateTime (1, 1, Convert.ToInt (lesen ["sesion"]); Beachten Sie, dass dies fehlschlägt, wenn ["sesion"] leer oder null ist. Ich möchte auch darauf hinweisen, dass Rechtschreibung ist "Sitzung" – Kevin

Antwort

1

Ich empfehle dringend, den Spaltentyp in einen DateTime Typ zu ändern und den sesiontimepicker.Value anstelle des sesiontimepicker.Text zu speichern.

Wenn Sie dies nicht tun können, haben Sie die zurückgegebene Zeichenfolge in eine int zu analysieren und einen DateTime mit einem beliebigen Monat und Tag erstellen (da Sie nicht über sie kümmern sich sowieso):

sesiontimepicker.Value = new DateTime (Convert.ToInt32(read["sesion"]), 1, 1); 
Verwandte Themen