ASP.NET Datatable 名为“xx"的列已经属于此DataTable的解决方法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET Datatable 名为“xx"的列已经属于此DataTable的解决方法?相关的知识,希望对你有一定的参考价值。

在Page_Load外面,我声明了一个静态的DataTable
public static DataTable dt= new DataTable();
然后在Page_Load的if (!IsPostBack)里面,给这个自定义的DataTable设定了表结构,添加一些列,页面首次载入的时候没问题
但是第二次载入就会报异常:
名为“xxxxx”的列已属于此 DataTable。

这个如果不用ViewState的话,要怎么解决?

DataTable不要声明成static,第二次加载的时候把DataTable清空!因为你首次已经创建了列,再次创建的时候就会报错!追问

谢谢,我按2L的方法加了个判断。
因为不想应ViewState,还得弄成全局的。

参考技术A public static DataTable dt= new DataTable();
不要写成静态的,写一个方法,专门创建表结构,然后返回DataTable 只在Page_Load外声明DataTable然后将创建出的表结构在if (!IsPostBack)赋值给声明的表结构就可以了,如果想长期保存表结构最好使用GetSet,在Set里面处理表结构,这样最好。追问

谢谢,我按2L的方法加了个判断。
因为不想应ViewState,还得弄成全局的。

参考技术B Page_Load的if (!IsPostBack)里面检测dt的列数是不是已经是你设置的了,如果是就不要重复设置了本回答被提问者采纳

以上是关于ASP.NET Datatable 名为“xx"的列已经属于此DataTable的解决方法?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET操作DataTable各种方法总结(给Datatable添加行列DataTable选择排序等)

ASP.NET中怎样对DataTable中某一行和某一列进行操作?

asp.net mvc2.0中如何将datatable对象传到view的前台然后获取datatable中表字段得值?

使用 Asp.net 将 Excel 导入 DataTable

ASP.NET 自己定义一个DataSet或者DataTable,如何把数据写到里边去

asp.net c# 如何取出datatable指定行的值