遍历数据表中特定列的值

时间:2018-11-29 10:21:09

标签: c#

我有一个包含一些值的数据表,我要做的就是遍历特定列的值并编写查询以从数据库中检索数据。我想说的是,我想从数据表中收集的值是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的组名列表。

1 个答案:

答案 0 :(得分:0)

我在这里假设以其他某种方式填充数据表dt

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

您首先需要从Gropup IDdt创建一个集合,然后在数据库中查询集合中所有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();

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