Imansible convertire il valore di data / ora di MySQL in System.DateTime

Ottengo questo errore:

Imansible convertire il valore di data / ora di MySQL in System.DateTime

mentre sto cercando di recuperare i dati da un database MySQL. Ho il datatype della data nel mio database MySQL. Ma mentre lo recupera nel mio datatable, ottiene l’errore sopra.

Come posso risolvere questo?

    Se io google per “Imansible convertire il valore di data / ora di MySQL in System.DateTime” vedo numerosi riferimenti a un problema che accede a MySQL da Visual Studio. È il tuo contesto?

    Una soluzione suggerita è:

    Questo non è un bug ma un comportamento previsto. Si prega di controllare il manuale sotto le opzioni di connessione e impostare “Consenti zero datetime” su true, come nelle immagini allegate, e l’errore andrà via.

    Riferimento: http://bugs.mysql.com/bug.php?id=26054

    È necessario aggiungere Convert Zero Datetime=True alla stringa di connessione, ad esempio:

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

    Ho aggiunto sia Convert Zero Datetime=True e Allow Zero Datetime=True e funziona correttamente

    Tirare giù il valore datetime come una stringa ed eseguire un DateTime.ParseExact(value, "ddd MMM dd hh:mm:ss yyyy", culture, styles); Dovresti solo impostare il formato della data per la data in cui stai tornando dal database. Molto probabilmente è yyyy-MM-dd HH:mm:ss . Almeno lo è per me.

    Controlla qui maggiori informazioni su DateTime.ParseExact

    Lascia che MySql converta il tuo timestamp unix in stringa. Usa la funzione mysql FROM_UNIXTIME (113283901)

    Ho anche affrontato lo stesso problema e ottenere il nome e il tipo di colonne. Quindi lanciare (col_Name come Char) dal nome della tabella. Da questo modo ottengo il problema come ‘0000-00-00 00:00:00’ quindi I Update come data e ora valide l’errore viene risolto per il mio caso.

    È ansible rendere l’applicazione completamente compatibile con la data e l’ora utilizzate da MySql. Quando l’applicazione viene eseguita in fase di esecuzione, fornire questo codice. Prima vai agli eventi dell’applicazione. Nella lista degli strumenti

    1. Vai al progetto
    2. Proprietà del progetto
    3. Seleziona la scheda Applicazione
    4. Visualizza eventi applicativi

    Questo aprirà un nuovo file. Questo file contiene il codice utilizzato all’inizio dell’applicazione.

    Scrivi questo codice in questo nuovo file:

      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