加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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");
        }
    }

但是,当我第二次运行我的网站时,它显示了这样的例外情况

Exception Details: System.Data.DuplicateNameException: A column named ‘slno’ already belongs to this DataTable.

谁能告诉我如何解决这个问题

解决方法

静态数据表意味着无论您的网页实例如何,它都将始终存在.因此,当您第一次运行网页时,您的Page_Load会创建数据表,一切都很好.

但是当您第二次加载该页面或者其他人尝试加载您的页面时,数据表仍然存在,因为它是静态的,因此您尝试在数据表已存在时添加列.

3种方法可以解决这个问题:1.删??除然后再次添加列.不要这样做,它在每个方面都是多余的和错误的代码.2.在dtp.Columns.Adds周围添加if语句,以确保它仅在第一次加载页面时运行它们.你可以查看是否存在columnds,你可以创建一个bool标志,或者你想到的其他方法.3.从变量声明中删除static,以便每次页面加载新数据表时都会创建.如果这样做,那么您可能希望将数据表基于静态数据源.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读