首页 > 解决方案 > 循环遍历数据表中特定列的值

问题描述

我有一个包含一些值的数据表,我要做的就是遍历特定列的值并编写查询以从数据库中检索数据。我想说的是,我想从数据表中收集的值是 groupid,所以我想检索数据库中提供的组 id 的所有组名。这是我的代码

foreach (DataRow row in dt.Rows)
            {

                object cellData = row["Group ID"];
                int ac = Convert.ToInt32(cellData);

                var data = (from o in db.groups where o.groupid == ac select new { o.groupname });
                GridView1.DataSource = data.ToList();
                GridView1.DataBind();

            }

循环后的代码将只获取最后一个值而忽略其他值。我不知道如何编写代码,以便它可以遍历数据表并从数据库中获取组名列表以及数据表中提供的所有 id

标签: c#

解决方案


我在这里假设数据表dt是通过其他方式填充的。

您正在循环dt尝试从数据库中获取每一行的数据并将其绑定到网格的行。这就是为什么您只获得网格中的最后一个数据。

您首先需要为Gropup IDfrom创建集合dt,然后在数据库中查询Group ID集合中的所有内容。

var groupIds = new List<int>();

foreach (DataRow row in dt.Rows)
{
    // Get and convert the "Group ID" from the row to integer
    // Add it to the list.
    groupIds.Add(Convert.ToInt32(row["Group ID"].ToString()));
}

// Query database to filter for all the groupids in the list.
var data = (from o in db.groups where groupsIds.Contains(o. groupid) select new { o.groupname });
GridView1.DataSource = data.ToList();
GridView1.DataBind();

我希望这可以帮助您解决问题。


推荐阅读