【问题标题】:Display row number from system.data.datarow显示来自 system.data.datarow 的行号
【发布时间】:2013-01-04 12:48:21
【问题描述】:

所以我正在将一个 excel 文档导入到我的项目中

DataSet result = excelReader.AsDataSet();

 if (result != null)
            {
                foreach (System.Data.DataTable t in result.Tables)
                {
                    if (t != null && t is System.Data.DataTable)
                    {
                        System.Data.DataTable table = t as System.Data.DataTable;

                        Items Lastitem = new Items();

                        foreach (System.Data.DataRow r in t.Rows)
                        {
                            if (r != null && r is System.Data.DataRow)
                            {
                                //new ItemType
                                if (r.ItemArray[0] != null)
                                {

然后,当我得到空列时,我运行检查以检查哪一列是空的,然后我想得到空行。 我试过了:

if (checkIfColumnisEmpty(r.ItemArray[0]) && !checkIfColumnisEmpty(r.ItemArray[1]))
                                        {
                                            throw new ImportBOQException("Error importing document: First column is empty at row " + r);

r 是数据行,telesense 允许我 rowError、rowState 等...但不是行号....有什么想法吗? }

【问题讨论】:

    标签: c# asp.net datatable datarow


    【解决方案1】:

    在遍历行时,您可以使用For Loop 而不是Foreach,如下所示:

    for (int i = 0; i < t.Rows.Count; i++)    
    {
    
        // Do Your Null Checking and throw the exception with iteration number + 1
    
        if (checkIfColumnisEmpty(t.Rows[i].ItemArray[0]) && !checkIfColumnisEmpty(t.Rows[i].ItemArray[1]))
           {
              throw new ImportBOQException("Error importing document: First column is empty at row " + (i + 1));
           }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2013-03-30
    • 2014-03-21
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多