c# – DataTable中的System.Data.DuplicateNameException
发布时间:2020-12-15 08:41:58 所属栏目:百科 来源:网络整理
导读:我正在动态地将列添加到!IsPostBack中的静态数据表中. static DataTable dtflow = new DataTable();protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { dtp.Columns.Add("slno"); dtp.Columns.Add("portname"); dtp.Columns.Add("t
我正在动态地将列添加到!IsPostBack中的静态数据表中.
static DataTable dtflow = new DataTable(); protected void Page_Load(object sender,EventArgs e) { if (!IsPostBack) { dtp.Columns.Add("slno"); dtp.Columns.Add("portname"); dtp.Columns.Add("type"); dtp.Columns.Add("portid"); dtp.Columns.Add("longitude"); dtp.Columns.Add("latitude"); dtp.Columns.Add("add1"); dtp.Columns.Add("add2"); dtp.Columns.Add("dist"); dtp.Columns.Add("state"); dtp.Columns.Add("country"); } } 但是,当我第二次运行我的网站时,它显示了这样的例外情况
谁能告诉我如何解决这个问题 解决方法
静态数据表意味着无论您的网页实例如何,它都将始终存在.因此,当您第一次运行网页时,您的Page_Load会创建数据表,一切都很好.
但是当您第二次加载该页面或者其他人尝试加载您的页面时,数据表仍然存在,因为它是静态的,因此您尝试在数据表已存在时添加列. 3种方法可以解决这个问题:1.删??除然后再次添加列.不要这样做,它在每个方面都是多余的和错误的代码.2.在dtp.Columns.Adds周围添加if语句,以确保它仅在第一次加载页面时运行它们.你可以查看是否存在columnds,你可以创建一个bool标志,或者你想到的其他方法.3.从变量声明中删除static,以便每次页面加载新数据表时都会创建.如果这样做,那么您可能希望将数据表基于静态数据源. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |