SqlBulkCopy - InvalidOperationException - Quel champ est à l'origine de cela

.net c# sqlbulkcopy

Question

J'utilise la classe SqlBulkCopy pour insérer un DataSet dans une paire de tables de ma base de données SQL Server.

Parfois, les données d'entrée ne peuvent pas être facilement converties dans le type de données requis par la colonne cible. Cela se traduit par une InvalidOperationException avec la description suivante:

La valeur donnée de type String de la source de données ne peut pas être convertie en type smalldatetime de la colonne cible spécifiée.

L'exception InnerException indique: Failed to convert parameter value from a String to a DateTime.

J'ai plusieurs champs DateTime dans ma table; Comment puis-je savoir quel champ est à l'origine de l'exception?

Réponse acceptée

Vous pouvez essayer de convertir les données vous-même avant de les ajouter au DataSet . Cela devrait mettre en évidence les données douteuses.


Réponse populaire

La seule solution est de diviser une conquête. Effectuez des insertions de test avec des colonnes manquantes jusqu'à ce que vous ayez isolé la colonne ou créé une sélection à l'aide de la fonction isdate (et toute autre option s'il s'agit d'un problème hors de la plage de dates pour rechercher les colonnes ou les lignes en cause



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi