2

我在 asp.net 和 c# 中工作。

我的应用程序中有一个包含一列的数据表。我想遍历该列值并用其他值检查这些值。请告诉我该怎么做。我用 foreach 尝试过,但它不起作用。

代码:

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

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

笔记:

dt是我的带有列代码的数据表。我想将列代码中的所有值与pcode进行比较。

4

4 回答 4

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

尽管您可能还想检查 NULL :)

于 2013-01-21T08:24:45.737 回答
1

在您的循环中,访问 dr,而不是 dt.Rows[0]。

于 2013-01-21T08:23:18.360 回答
0

您总是访问第一行:

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

dt 是我的带有列代码的数据表。我想将列代码中的所有值与 pcode 进行比较。

那么当我假设您想将所有值与一个变量进行比较时,我是否正确,如果所有字段都等于该值,则bool变量应该是true,否则false

您可以使用 Linq:

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

Enumerable.All确定序列的所有元素是否满足条件。

于 2013-01-21T08:25:15.643 回答
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 
        { }
    }
}
于 2013-01-21T08:30:11.290 回答