2009-06-21 7 views
7

私のコードに問題があります。データテーブルの行の値を取得する#

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;   
    } 

しかし、私はxATmaxとyATmaxに次の行の値が必要です...誰かが私を助けることができますか?

答えて

20

foreachを使用しないでください。 forループを使用してください。あなたのコードはビットがめちゃくちゃしかし、あなたは何かなどを行う可能性がある...あなたが最後の行の間に考慮に入れなければならないだろう

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

注意あなたが使用する必要がありますので、何の「I + 1」は存在しませんそれをキャッチするif文。ループにおいて

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

、あなたは今は

(I + 1が存在すると仮定して)1 +行を参照することができ
関連する問題