2009-06-21 8 views
7

Mam problem z moim kodem.Uzyskaj wartość wiersza w 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;   
    } 

ale potrzebuję na xATmax i yATmax wartość następnego rzędu ... Ktoś może mi pomóc?

Odpowiedz

20

Nie używaj foreach. Użyj "pętli for". Kod jest nieco pomieszane, ale można zrobić coś takiego ...

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

Uwaga trzeba by wziąć pod uwagę podczas ostatniego rzędu nie będzie „i + 1”, więc trzeba będzie użyć instrukcja if, aby to złapać.

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

w pętli, można odwołać rzędu i + 1 (zakładając, że jest i + 1)