Ich erhalte diesen Fehler:
MySQL-Datums- / Zeitwert kann nicht in System.DateTime konvertiert werden
während ich versuche, die Daten aus einer MySQL-Datenbank abzurufen. Ich habe das Datum Datentyp in meiner MySQL - Datenbank. Beim Abrufen in meine Datentabelle wird jedoch der obige Fehler angezeigt.
Wie kann ich das beheben?
.net
asp.net
mysql
asp.net-3.5
Ankit Chauhan
quelle
quelle
Antworten:
Wenn ich nach "MySQL-Datums- / Zeitwert kann nicht in System.DateTime konvertiert werden" google, werden zahlreiche Verweise auf ein Problem beim Zugriff auf MySQL über Visual Studio angezeigt. Ist das dein Kontext?
Eine vorgeschlagene Lösung ist:
Referenz: http://bugs.mysql.com/bug.php?id=26054
quelle
Sie müssen
Convert Zero Datetime=True
Ihrer Verbindungszeichenfolge Folgendes hinzufügen , zum Beispiel:quelle
Ich habe beide
Convert Zero Datetime=True
& hinzugefügtAllow Zero Datetime=True
und es funktioniert gutquelle
Ziehen Sie den Datum / Uhrzeit-Wert als Zeichenfolge nach unten und führen
DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles);
Sie Folgendes aus: Sie müssen lediglich das Datumsformat für das Datum festlegen, das Sie aus der Datenbank zurückgeben. Höchstwahrscheinlich ist esyyyy-MM-dd HH:mm:ss
. Zumindest ist es für mich.Überprüfen Sie hier weitere Informationen auf der
DateTime.ParseExact
quelle
Lassen Sie MySql Ihren Unix-Zeitstempel in einen String konvertieren. Verwenden Sie die MySQL-Funktion FROM_UNIXTIME (113283901)
quelle
Ich hatte auch das gleiche Problem und bekam den Spaltennamen und seine Typen. Dann wandle (col_Name als Char) aus dem Tabellennamen. Auf diese Weise erhalte ich das Problem als '0000-00-00 00:00:00' und aktualisiere dann als gültiges Datum und Uhrzeit, bis der Fehler für meinen Fall behoben ist.
quelle
Sie können die Anwendung vollständig mit dem Datum und der Uhrzeit kompatibel machen, die von MySql verwendet werden. Wenn die Anwendung zur Laufzeit ausgeführt wird, geben Sie diesen Code ein. Gehen Sie zuerst zu den Anwendungsereignissen. In der Liste der Werkzeuge
Dadurch wird eine neue Datei geöffnet. Diese Datei enthält Code, der zu Beginn der Anwendung verwendet wird.
Schreiben Sie diesen Code in diese neue Datei:
quelle
Anstatt die Verbindungszeichenfolge zu ändern, können Sie die
IsValidDateTime
Eigenschaft desMySqlDateTime
Objekts verwenden, um festzustellen, ob Sie das Objekt als umwandeln könnenDateTime
.Ich hatte ein Szenario, in dem ich versuchte, Daten aus einer "UpdateTime" -Spalte zu laden, die nur explizit festgelegt wurde, wenn die Zeile aktualisiert wurde (im Gegensatz zu InsertedTime, die immer festgelegt wurde). In diesem Fall habe ich die
MySqlDataReader.GetMySqlDateTime
Methode folgendermaßen verwendet:quelle
Wenn "allow null datetime = true" nicht funktioniert, verwenden Sie die folgenden Lösungen: -
Fügen Sie dies zu Ihrer Verbindungszeichenfolge hinzu: "Erlaube null datetime = no" - damit funktionierte die Typumwandlung perfekt.
quelle
Fügen Sie in einem Stimulsoft-Bericht diesen Parameter zur Verbindungszeichenfolge hinzu (klicken Sie mit der rechten Maustaste auf Datenquelle-> Bearbeiten).
quelle