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

C# 向DataTable动态添加行列循环赋值输出不符合预期如何解决

代码问题说明
  1. 逻辑错误:你当前采用「遍历列→每列单独新增批量行」的逻辑,会导致新表行数为原表行数×列数,每行仅当前处理列有值,其余列为空,和预期结构完全不符。
  2. 语法错误:
    • 类名拼写错误:DataTables 多了末尾的s,正确类名为DataTable
    • 变量名不匹配:你实例化的新表变量为dynamictable,但添加行时调用的是enryptedTable.Rows.Add(),存在拼写错误且变量未定义。
修正代码

你需要先完成新表列结构创建,再逐行处理原表数据,一次性完成整行所有列的赋值:

DataTable dynamictable = new DataTable();
// 先构建新表列结构
foreach (DataColumn cl in dataTable.Columns)
{
    dynamictable.Columns.Add(cl.ColumnName);
}
// 逐行迁移并处理数据
foreach (DataRow originalRow in dataTable.Rows)
{
    DataRow newRow = dynamictable.NewRow();
    foreach (DataColumn cl in dataTable.Columns)
    {
        // 若要对数据加密,直接将下方赋值内容替换为加密后的结果即可
        newRow[cl.ColumnName] = originalRow[cl].ToString();
    }
    dynamictable.Rows.Add(newRow);
}
效果对比
  • 错误运行实际输出:
    实际输出
  • 修正后预期输出:
    预期输出

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 19:48:03