2009-06-21 4 views
7

J'ai un problème avec mon code.Obtenir la valeur de Row dans Datatable C#

foreach (DataRow dr in dt_pattern.Rows) 
    { 
     part = dr["patternString"].ToString(); 
     if (part != vpart) 
     { 
     System.Console.WriteLine(part); 
     System.Console.WriteLine("Geben Sie bitte für den Abschnitt die AT ein: "); 
     temp = System.Console.ReadLine(); 
     AT = ToDouble(temp); 
     dr["AT"] = AT; 

     double xATmax = ToDouble(dr["Ampl"].ToString()); 
     double x = ToDouble(dr["Time"].ToString()); 

     double yATmax = ToDouble(dr["Ampl"]+1.ToString()) + AT; 
     double y = ToDouble(dr["Ampl"].ToString()); 

     dr["alphaATmin"] = Gradient(x,xATmax,y,yATmax); 
     System.Console.WriteLine(dr["alphaATmin"]); 
     } 
     vpart = part;   
    } 

mais j'ai besoin à xATmax et yATmax la valeur de la ligne suivante ... Quelqu'un peut m'aider?

Répondre

20

N'utilisez pas de foreach alors. Utilisez une boucle for. Votre code est un peu foiré, mais vous pouvez faire quelque chose comme ...

for (Int32 i = 0; i < dt_pattern.Rows.Count; i++) 
{ 
    double yATmax = ToDouble(dt_pattern.Rows[i+1]["Ampl"].ToString()) + AT; 
} 

Notez que vous devrez prendre en compte lors de la dernière ligne il n'y aura pas « i + 1 » de sorte que vous devrez utiliser une instruction if pour l'attraper.

4
for (int i=0; i<dt_pattern.Rows.Count; i++) 
{ 
    DataRow dr = dt_pattern.Rows[i]; 
} 

Dans la boucle, vous pouvez maintenant référence à la ligne i + 1 (en supposant qu'il est un i + 1)

Questions connexes