2013-01-21 45 views
1

所以我導入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的等等,但沒有行號....任何想法嗎? }

回答

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)); 
     } 
} 
+0

這真的可以理解的,但它會非常非常舒服,如果有一個ROWNUMBER屬性。 – Th3B0Y

+0

@ Th3B0Y實際上存在某種屬性,請檢查此問題的接受答案:https://stackoverflow.com/questions/4502920/how-to-get-the-row-number-from-a-datatable – AbZy

+0

@ Th3B0Y for循環在這種情況下具有更好的性能。 – AbZy