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

C#中创建DataTable后无法打印输出的技术求助

问题分析与解决

你的问题出在两个核心点:

  1. DataTable列定义与行数据不匹配
    你只给DataTable添加了3列(空名称列、Sun、Moon),但调用Rows.Add时每行传入了12个值(1个字符串+10个数值)。虽然C#不会报错,DataTable会自动补全缺失的列,但这会导致数据结构混乱,也偏离了你原本的设计意图。

  2. 缺少实际输出逻辑
    你仅创建了DataTable和DataView,但没有编写任何打印、绑定或导出的代码,程序自然不会输出内容。


修正方案

1. 对齐列与行数据

如果想让LgeoEPH/BgeoEPH的每个元素对应一列,先把列定义完整:

DataTable dtz = new DataTable();
// 第一列作为标识列
dtz.Columns.Add("Type", typeof(string));
// 为每个索引创建对应列(0到10)
for (int i = 0; i <= 10; i++)
{
    dtz.Columns.Add($"Index_{i}", typeof(double));
}
// 此时每行元素数量与列数完全匹配
dtz.Rows.Add("LgeoEPH", LgeoEPH[0], LgeoEPH[1], LgeoEPH[2], LgeoEPH[3], LgeoEPH[4], LgeoEPH[5], LgeoEPH[6], LgeoEPH[7], LgeoEPH[8], LgeoEPH[9], LgeoEPH[10]);
dtz.Rows.Add("BgeoEPH", BgeoEPH[0], BgeoEPH[1], BgeoEPH[2], BgeoEPH[3], BgeoEPH[4], BgeoEPH[5], BgeoEPH[6], BgeoEPH[7], BgeoEPH[8], BgeoEPH[9], BgeoEPH[10]);

2. 添加输出代码

根据你的ASP.NET环境,可选择以下方式输出:

方式1:绑定到GridView控件(页面可视化展示)

先在.aspx页面添加GridView控件:

<asp:GridView ID="GridView1" runat="server"></asp:GridView>

后台代码绑定数据:

GridView1.DataSource = dtz;
GridView1.DataBind();

方式2:生成文本输出(输出到页面或日志)

StringBuilder sb = new StringBuilder();
// 先输出列名
foreach (DataColumn col in dtz.Columns)
{
    sb.Append(col.ColumnName + "\t");
}
sb.AppendLine();
// 遍历每行输出数据
foreach (DataRow row in dtz.Rows)
{
    foreach (var item in row.ItemArray)
    {
        sb.Append(item.ToString() + "\t");
    }
    sb.AppendLine();
}
// 输出到页面(Web环境)
Response.Write("<pre>" + sb.ToString() + "</pre>");
// 或写入日志文件
File.WriteAllText(Server.MapPath("~/datatable_output.txt"), sb.ToString());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 10:55:18