Impossible de convertir la valeur date / heure de MySQL en System.DateTime

Je reçois cette erreur:

Impossible de convertir la valeur date / heure de MySQL en System.DateTime

pendant que j’essaye de récupérer les données d’une firebase database MySQL. J’ai le type de données de date dans ma firebase database MySQL. Mais en le récupérant dans mon datatable, il obtient l’erreur ci-dessus.

Comment puis-je réparer cela?

Si je google pour “Impossible de convertir la valeur de date / heure MySQL en System.DateTime”, je vois de nombreuses références à un problème d’access à MySQL depuis Visual Studio. Est-ce votre contexte?

Une solution proposée est la suivante:

Ce n’est pas un bug mais un comportement attendu. S’il vous plaît vérifier manuel sous options de connexion et définir “Autoriser Zero Datetime” à vrai, comme sur les photos jointes, et l’erreur disparaîtra.

Référence: http://bugs.mysql.com/bug.php?id=26054

Vous devez append Convert Zero Datetime=True à votre chaîne de connexion, par exemple:

 server=localhost;User Id=root;password=mautauaja;Persist Security Info=True;database=test;Convert Zero Datetime=True 

J’ai ajouté à la fois Convert Zero Datetime=True & Allow Zero Datetime=True et cela fonctionne bien

Déroulez la valeur datetime en tant que chaîne et faites un DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles); Il vous suffit de définir le format de date pour la date de retour de la firebase database. Probablement, il est yyyy-MM-dd HH:mm:ss . Au moins, c’est pour moi.

Vérifiez ici plus d’informations sur le DateTime.ParseExact

Laissez MySql convertir votre horodatage unix en chaîne. Utilisez la fonction mysql FROM_UNIXTIME (113283901)

J’ai également rencontré le même problème et obtenu le nom des colonnes et leurs types. Puis, lancez (col_Name comme Char) à partir du nom de la table. De cette manière, je reçois le problème sous la forme «0000-00-00 00:00:00», puis je mets à jour en tant que date et heure valides de l’erreur pour mon cas.

Vous pouvez rendre l’application entièrement compatible avec la date et l’heure utilisées par MySql. Lorsque l’application s’exécute au moment de l’exécution, indiquez ce code. Allez d’abord aux événements d’application. Dans la liste des outils

  1. Aller au projet
  2. Propriétés du projet
  3. Sélectionnez l’onglet Application
  4. Afficher les événements de l’application

Cela ouvrira un nouveau fichier. Ce fichier contient le code utilisé au début de l’application.

Ecrivez ce code dans ce nouveau fichier:

  Partial Friend Class MyApplication Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup My.Application.ChangeCulture("en") My.Application.ChangeUICulture("en") My.Application.Culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd" My.Application.Culture.DateTimeFormat.LongDatePattern = "yyyy-MM-dd" My.Application.Culture.DateTimeFormat.LongTimePattern = "HH:mm:ss" My.Application.Culture.DateTimeFormat.ShortTimePattern = "HH:mm:ss" End Sub End Class