2017-01-20 1 views
-2

Lorsque je déboguais les données renvoyées à partir d'un processus stocké, j'ai foré dans le DataRow pour voir quelles valeurs étaient affectées aux différents membres de l'ensemble de données. Cela m'a pris dans un trou de lapin sur une chasse aux oies sauvages, allant de « membres statiques » à « valeur » et à nouveau, encore et encore, comme on le voit ici:Pourquoi le débogueur boucle-t-il sans fin sur les propriétés "Membres statiques" et "Valeur" en cascade?

enter image description here

Pourquoi fait-il ce?

j'avais un point d'arrêt défini sur la cession à NumCli dans ce bloc:

foreach (DataRow delPerfDataRow in dtDelPerf.Rows) 
{ 
    string custNum = delPerfDataRow["CustNo"].ToString(); 
    string memNum = delPerfDataRow["MemberNo"].ToString(); 
    . . . 

Les deux NumCli et memNum ne montraient aucune valeur après les instructions d'affectation, donc je clic droit delPerfDataRow pour voir quelles valeurs la d'autres membres de données avaient. Quand il a fallu creuser dans le membre de données CustNo, cependant, essayer de voir la valeur a conduit à cette poursuite redondante et récurrente.

+1

Ajoutez ** delPerfDataRow ["CustNo"] ** à regarder. –

Répondre

2

Parce que vous continuez à regarder la même chose encore et encore. Regardez l'image ci-dessous:

enter image description here

La valeur de s est System.DBNull qui a un champ nommé Value. Ce champ est de type System.DBNull qui aura évidemment un champ nommé Value. Et ainsi de suite.

La même chose se produit dans votre cas. Votre colonne CustNo a System.DBNull et ainsi de suite. Si vous l'affichez dans la fenêtre de surveillance rapide, vous verrez la même fenêtre que l'image ci-dessus.

+0

Cela me semble toujours idiot, mais ça va. –