La fixation d'un DataRow élément null

J'ai un fichier texte que j'ai lu dans une table de données, puis effectuer un bulk insert dans une table SQL Server. C'est assez rapide et il fonctionne très bien lorsque toutes les valeurs importées sont traités comme des chaînes de caractères (les dates, les chaînes de caractères, entiers, etc sont tous importés dans les champs de type chaîne).

Maintenant que j'ai le concept élaboré, je vais revenir à attribuer réel les types de données dans la base de données et mon code. La base de données est correct types attribuée aux champs. Je suis en train de travailler sur le code maintenant.

Je vais avoir un problème avec les dates. Comme je l'ai dit, tout est une chaîne et se convertit le type correct. Dans le code suivant, je veux tester si la valeur de chaîne représentant une date est null ou un espace. Si elle n'est pas null, alors utiliser la valeur existante. Sinon, mis à null.

row[i] = !string.IsNullOrWhiteSpace(data[i]) ? data[i] : DBNull.Value;

J'ai essayé d'utiliser null mais obtenez un message d'erreur me disant d'utiliser DBNull à la place. Lorsque j'utilise DBNull, je reçois un message me disant il n'y a pas de conversion implicite entre la chaîne et la System.DBNull.

Les colonnes dans la table de données ont des types de données spécifié (dans ce cas, DataType = Type.GetType("System.DateTime") ) et j'ai mis AllowDBNull = true pour cette colonne

Comment puis-je gérer cela?

Merci!

OriginalL'auteur DenaliHardtail | 2011-02-25