2010-09-10 5 views
0

JeXML Doc - traitement null

xmlDoc.DataSet.Tables["<tablename>"].Columns 

Je veux faire une boucle à travers ces colonnes via DataColumn, pour dire ce xmlDoc a 10 entrées et 5 sont nuls, la boucle doit se produire pour les entrées non nulles seulement.

Des pensées?

Répondre

0
for (int i = 0; i < ds.Tables[0].Columns.Count; i++) 
{ 
    DataColumn col = ds.Tables[0].Columns[i] != null ? ds.Tables[0].Columns[i] : "<some default value>"; 
    if (col != "<some default value>") 
        // do something 
} 
+0

Je continue d'obtenir ceci, System.Web.Services.Protocols.SoapException: Le serveur n'a pas pu traiter la demande. ---> System.Exception: l'objet ne peut pas être transtypé à partir de DBNull vers d'autres types. Une idée? – Sharpeye500

+0

Je n'ai pas vraiment d'endroit pour tester ça, mais l'as-tu essayé? --Mise à jour ma réponse. – mledbetter

+0

Veillez également à autoriser les colonnes de l'ensemble de données en question à autoriser les valeurs NULL pour cette colonne. Vous essayez de copier un document XML à partir d'un service de soap dans un dataset fortement typé. Assurez-vous que l'ensemble de données a été explicitement défini pour autoriser les valeurs null pour toute colonne que vous pensez avoir des valeurs nulles. – mledbetter

2

Que diriez-vous ceci:

foreach (DataColumn column in xmlDoc.DataSet.Tables[""].Columns) 
{ 
    if (column != null) 
    { 
     // your code here 
    } 
} 
+0

Oui j'ai ce genre de code, mais je GET-> System.Exception: objet ne peut pas être jeté de DBNull à d'autres types. – Sharpeye500

+0

Merci, vérifie-t-il si les 5 autres colonnes ont une valeur nulle, je reçois une exception DBNull cast. – Sharpeye500

+0

@ Sharpeye500 alors vous voudriez utiliser 'if (colonne! = DBNull)' à la place @Andrew Hare ne voulait pas détourner une bonne réponse – msarchet