2009-06-21 19 views
7

tengo un problema con mi código.Obtener valor de fila en 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;   
    } 

pero necesito a xATmax y yATmax el valor de la siguiente fila ... Alguien me puede ayudar?

Respuesta

20

No utilice un foreach a continuación. Use un 'for loop'. Su código es un poco en mal estado, pero se podía hacer algo así ...

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

Nota que tendría que tener en cuenta durante la última fila no habrá 'i + 1' por lo que tendrá que utilizar una declaración if para atrapar eso.

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

En el bucle, ahora puede referencia de fila i + 1 (suponiendo que existe una i + 1)

Cuestiones relacionadas