Impossible de convertir MySQL valeur de date/heure du Système.DateTime
J'obtiens cette erreur:
Pas en mesure de convertir MySQL valeur de date/heure du Système.DateTime
alors que je suis en train de récupérer les données à partir d'une base de données MySQL.
J'ai le date le type de données dans ma base de données MySQL. Mais lors de la récupération dans ma datatable, il obtenir l'erreur ci-dessus.
Comment puis-je résoudre ce problème?
- Double Possible de Impossible de convertir MySQL valeur de date/heure du Système.DateTime
Vous devez vous connecter pour publier un commentaire.
Si je google pour des "Impossible de convertir MySQL valeur de date/heure du Système.DateTime" je vois de nombreuses références à un problème d'accès à MySQL à partir de Visual Studio. Est que votre contexte?
Une des solutions proposées est:
Référence: http://bugs.mysql.com/bug.php?id=26054
Vous devez ajouter
Convert Zero Datetime=True
à votre chaîne de connexion, par exemple:j'ai ajouté les deux
Convert Zero Datetime=True
&Allow Zero Datetime=True
et il fonctionne très bienTirer la valeur datetime vers le bas comme une chaîne de caractères et faire un
DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles);
Vous suffit de définir le format de date pour la date de retour de la base de données. Plus probablement, il estyyyy-MM-dd HH:mm:ss
. Au moins est est pour moi.Vérifier ici plus d'infos sur le
DateTime.ParseExact
Laisser MySql convertir votre timestamp unix de chaîne. Utiliser la fonction mysql FROM_UNIXTIME( 113283901 )
J'ai aussi été confronté au même problème, et d'obtenir les noms des colonnes et ses types. Ensuite coulé(nom_colonne comme Char) de nom de table. De cette façon, je reçois le problème comme '0000-00-00 00:00:00', puis-je mettre à Jour comme la date de validité et le moment où l'erreur s'éloigne pour mon cas.
Vous pouvez faire la demande entièrement compatible avec la date et l'heure qui est utilisé par MySql. Lorsque l'application s'exécute au moment de l'exécution de fournir ce code.
D'abord Aller à l'Application d'Événements.
Dans la liste des outils
Cela va ouvrir un nouveau fichier. Ce fichier contient le code utilisé au début de l'application.
Écrire ce code dans un nouveau fichier:
Plutôt que de modifier la chaîne de connexion, vous pouvez utiliser le
IsValidDateTime
propriété de laMySqlDateTime
objet de vous aider à déterminer si vous pouvez convertir l'objet en tant queDateTime
.J'ai eu un scénario où j'ai essayé de charger des données à partir d'un "UpdateTime" colonne qui a été seulement de définir explicitement quand il y avait une mise à jour de la ligne (par opposition à la InsertedTime qui était toujours ensemble). Pour ce cas, j'ai utilisé le
MySqlDataReader.GetMySqlDateTime
méthode comme suit:si "permettre à zéro datetime=true" n'est pas de travail, puis utilisez la commande suivante sollutions:-
Ajouter à votre chaîne de connexion: "permettre à zéro datetime=no" - que fait le type de fonte de fonctionner parfaitement.
Dans un Stimulsoft rapport ajouter ce paramètre à la chaîne de connexion
(clic droit sur la source de données->modifier)