You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

打印DataTable列名及对应值时遇‘Row不存在于当前上下文’错误求助

问题分析与解决方案

嘿,我一眼就瞅出你代码里的问题啦!这个报错(准确来说是col变量不在当前上下文)的根源,是代码块的作用域没搞对。

错误原因

你写的嵌套foreach里,第二个遍历列的循环没有用大括号{}包裹所有要执行的代码——这就导致只有第一行Console.WriteLine(col.ColumnName);属于列循环,而下一行Console.WriteLine(row[col]);直接跳出了列循环的作用域。这时候col变量已经失效,自然会触发上下文错误。

修正后的代码

给第二个foreach加上大括号,把两行输出都包裹到列循环的作用域里就行:

foreach (DataRow row in dtfinal.Rows)
{
    foreach (DataColumn col in dtfinal.Columns)
    {
        Console.WriteLine(col.ColumnName);
        Console.WriteLine(row[col]); // 现在col和row都在有效作用域内啦
    }
}

补充说明

你之前参考的解决方案无效,大概率是没注意到这种“隐形”的语法细节——C#里单语句循环可以省略大括号,但多执行语句时必须用大括号明确界定代码块范围,不然很容易踩这类作用域的坑。

内容的提问来源于stack exchange,提问作者user9470599

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:05:32