• 输入数组长度大于此表中的列数


      ASP.NET错误:输入数组长度大于此表中的列数。

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.ArgumentException: 输入数组长度大于此表中的列数。

      ASP.NET错误:输入数组长度大于此表中的列数。 收藏

    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

    异常详细信息: System.ArgumentException: 输入数组长度大于此表中的列数。

    错误代码如下:

     DataTable dt = IOfferPubMst.GetInfoPubAllSAD(Ticket.CompanyID, txtTitle.Text);
                dt.Columns.Add("successCnt", typeof(int));
                dt.Columns.Add("realCnt", typeof(int));
                dt.Columns.Add("plantCnt", typeof(int));

    DataTable newdt = new DataTable();         

    DataRow[] newdr=dt.Select("realCnt>=plantCnt and successCnt<plantCnt");

        foreach (DataRow row in newdr)
                    {
                        newdt.Rows.Add(row.ItemArray);
                    }

    ,原因在于DataTable newdt = new DataTable();此时newTable已经生成,但是此时并未给此表添加列,因此newTable表里的列数为0,在你dt.Rows.Add(rows);时就会异常。

    解决的方法是:在DataTable newTable = new DataTable();之后使用newTable.Columns.add("列名");给newTable表对象加上列.然后再添加行。

    或者   DataTable newdt = dt.Clone();
                    newdt.Clear();

  • 相关阅读:
    vijos1198:最佳课题选择
    vijos1071:新年趣事之打牌
    vijos1153:猫狗大战
    bzoj3594: [Scoi2014]方伯伯的玉米田
    bzoj2753: [SCOI2012]滑雪与时间胶囊
    bzoj1923: [Sdoi2010]外星千足虫
    bzoj2783: [JLOI2012]树
    bzoj4590: [Shoi2015]自动刷题机
    bzoj4580: [Usaco2016 Open]248
    bzoj4579: [Usaco2016 Open]Closing the Farm
  • 原文地址:https://www.cnblogs.com/jcgh/p/2047450.html
Copyright © 2020-2023  润新知