2009-10-22 5 views
2

J'utilise une base de données MySQL avec DbLinq, mais il y a une exception levée:Conversion MySQL DATETIME à System.DateTime

"Impossible de convertir datetime MySQL pour System.DateTime"

Comment puis-je résoudre ce problème?

+0

Comment faites-vous le casting/la conversion maintenant? – Ariel

+0

La date MySql est-elle un horodatage unix? –

Répondre

1

Eh bien, si vous avez un jeu de résultats contenant MySql DateTime valeurs, vous pouvez utiliser la méthode ConvertAll avec un délégué en utilisant DateTime.Parse pour créer une collection de System.DateTime valeurs.

Voici un exemple où les « résultats » est le résultat de votre requête dblinq contenant des valeurs datetime MySQL:

List<DateTime> dateTimes = results.ConvertAll(delegate(string time){ 
    return DateTime.Parse(time); 
}); 

Est-ce que vous cherchez?

1

je bougeais une colonne dans mon gridview de asp: BoundField à asp: TemplateField Nous avons donc dû afficher une date explicitement à partir d'une base de données MySQL. J'ai trouvé, par la réflexion, que la collection a tapé les champs de date comme MySqlDateTime et pas system.DateTime.

J'ai ajouté l'instruction d'importation MySql.Data.Types au code derrière et l'instruction Eval suivante dans une étiquette dans le contexte d'un gridview.

Text = '<% # CType (Eval ("Submitted_Date"), MySql.Data.Types.MySqlDateTime) .toString%>'

format de sortie: 02/23/2011

espoir que aide!

5

Vérifier qu'une date nulle signifie une date comme '0000-00-00' dans la base de données; cela pourrait être la cause de l'erreur.

Questions connexes