2013-01-21 85 views
1

我在asp.net和c#中工作。遍歷數據表中的特定列

我在我的應用程序中有一列數據表。我想迭代通過該列值,並檢查這些值與其他value.please告訴我如何做到這一點。我嘗試了與foreach但它不工作。

代碼:

foreach (DataRow dr in dt.Rows) 
     { 
      int code = Convert.ToInt32(dt.Rows[0]["Code"]); 

      if (code == pcode) 
      { 
       //do something 
      } 
      else 
      { } 
     } 

注:

DT是我與列代碼數據表。我想在列代碼所有值與P碼比較。

+0

您已經展示了一種方式,它出了什麼問題,您實際需要什麼? –

+0

其不工作.. – coder

+2

**從來沒有**使用_「不工作」_在SO!而是試着用有意義的詞來解釋錯誤的行爲,錯誤或異常。 –

回答

1
int code = Convert.ToInt32(dr["Code"]); 

雖然你可能要檢查NULL也:)

1

在你的循環中,訪問dr,而不是dt.Rows [0]。

0

你總是訪問的第一行:

dt.Rows[0]["Code"] // use dr instead of dt.Rows[0] 

dt爲我的數據表與列code.I要將 列代碼中的所有值與pcode進行比較。

所以,我說的對,當我假設你想要的所有值與一個變量比較,如果所有領域的平等這個值,bool變量應該是true,否則false

可以使用的LINQ:

var allEqual = dt.AsEnumerable() 
       .All(r => r.Field<int>("Code") == pcode); 

Enumerable.All確定序列中的所有元素是否滿足條件。

0
foreach (DataRow dr in dt.Rows) 
{ 
    object o = dr["Code"]; 
    if (o != DBNull.Value) // Check for null 
    { 
     int code = Convert.ToInt32(o); 

     if (code == pcode) 
     { 
      //do something 
     } 
     else 
     { } 
    } 
}