如何获取拆分DataTable得到的所有表并遍历每张表的每一行?
拆分DataTable并遍历子表所有行的正确实现
问题说明
需要实现获取拆分DataTable后生成的所有子表,并遍历每个子表中的每一行,原代码的遍历部分存在错误,修正后即可实现需求。
修正后的完整代码
using (DataTable dt = new DataTable()) using (SqlDataAdapter adapter = new SqlDataAdapter(comm)) { adapter.Fill(dt); // 按每9999行拆分原DataTable,生成子表数组 DataTable[] dt1 = dt.AsEnumerable() .Select((row, index) => new { row, index }) .GroupBy(x => x.index / 9999) // 整数除法,自动截断小数部分,实现分组 .Select(g => g.Select(x => x.row).CopyToDataTable()) .ToArray(); // 遍历每个子表 foreach (DataTable subTable in dt1) { // 遍历当前子表的每一行 foreach (DataRow row in subTable.Rows) { // 此处可添加对row的处理逻辑 // 示例:输出某列值 // Console.WriteLine(row["ColumnName"].ToString()); } } }
关键修正点
- 将错误的
Foreach改为C#关键字的小写形式foreach - 将遍历对象类型
DataSet改为正确的DataTable(因为dt1是DataTable[]类型) - 补充了遍历子表中每一行的内层循环,实现完整需求
内容的提问来源于stack exchange,提问作者NiclasNilsson
相关产品推荐
相关产品推荐

