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

DataTable序列化提示未设置表名,已设置TableName仍报错是什么原因?

错误原因

该报错是因为参与序列化操作的DataTable未设置TableName属性,你代码中的问题在于属性设置逻辑被覆盖失效:

// 第一步:手动实例化DataTable并设置名称
DataTable dt = new DataTable();
dt.TableName = "zubur amak";
// 第二步:直接将接口返回的新DataTable实例赋值给dt,之前设置过名称的实例被丢弃
dt = service.GetTransactions(accID);

执行完第二行赋值后,dt指向的是GetTransactions方法返回的全新实例,这个实例并没有设置TableName,后续数据绑定触发序列化时就会抛出错误。

修复方案

调整代码顺序,给接口返回的DataTable设置名称即可:

string accID = Session["accountid"].ToString();
DataTable dt = service.GetTransactions(accID);
dt.TableName = "zubur amak";
transactions.DataSource = dt;
transactions.DataBind();

如果GetTransactions是你可维护的内部方法,也可以直接在方法内部给返回的DataTable设置默认TableName,避免调用侧每次重复设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 23:06:02