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
解决方案
我在这里假设数据表dt
是通过其他方式填充的。
您正在循环dt
尝试从数据库中获取每一行的数据并将其绑定到网格的行。这就是为什么您只获得网格中的最后一个数据。
您首先需要为Gropup ID
from创建集合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();
我希望这可以帮助您解决问题。
推荐阅读
- r - R:生成针对特定玩家的赢/输记录表
- bash - 当管道到 xxd 时,为什么有些文本未经修改就通过了?
- c - 向后验证字符串 S 是否等于字符串 T
- rabbitmq - 如何使用rabbitmq HTTP调用获取rabbitmq联合链接状态
- azure - 如何通过绑定将记录从 Azure Functions 添加到 Azure 表存储?
- java - 将 ClientFilter 从 Jersey 移动到 Jersey 2
- javascript - 如何使用 JavaScript 和 Ajax 在服务器上创建/写入/编辑文件?
- c++ - 一次读取 1 和 0 的文件
- python - 将 ssh 连接到域上的用户帐户?
- c++ - 在 C++ 中使用退出函数时如何暂停命令窗口?