我有一个包含一些值的数据表,我要做的就是遍历特定列的值并编写查询以从数据库中检索数据。我想说的是,我想从数据表中收集的值是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的组名列表。
答案 0 :(得分:0)
我在这里假设以其他某种方式填充数据表dt
。
您正在遍历dt
的行,尝试从数据库中获取每一行的数据并将其绑定到网格。这就是为什么只获取网格中的最后一个数据的原因。
您首先需要从Gropup ID
为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();
我希望这可以帮助您解决问题。