2015-06-10 62 views
0

我正在使用OleDbDataReader讀取Excel工作表並將其轉換爲Datatable。 Excel工作表中的前幾行列告訴您關於excel的詳細信息。DataTable.Rows返回c#中的第二行

例:

Month ---- First Row 
Year --- Second Row 
Payment ---THird row 

在Excel工作表餘額列有所有員工的工資細節。

我編寫象下面這樣:

OleDbCommand ocmd = new OleDbCommand(query, conn); 

OleDbDataReader odr = ocmd.ExecuteReader();  

DataTable dtable = new DataTable(); 
dtable.Load(odr); 

if (dtable.Rows.Count > 0) 
{        
    DataRow row = dtable.Rows[0]; 
    sMonth = row[2].ToString(); 
    row = dtable.Rows[1]; 
    sYear = row[2].ToString(); 
    row = dtable.Rows[2]; 
    sPayDate = row[2].ToString();   

    ///Salary details 
    for (int i = 6; i < dtable.Rows.Count; i++) 
    {   
     row = dtable.Rows[i]; 
     colName = odr[1].ToString(); 
     colBasic = row[9].ToString(); 
     colHRA = row[10].ToString(); 
     ...... 
    } 
} 

DataRow row = dtable.Rows[0]; 

返回第二行。 (即)年份詳情

我無法在第一行獲取月份詳情。

+2

顯示查詢和連接字符串。 –

+1

你正在執行的sql語句是什麼?您是否記得正確地對結果集進行排序?我懷疑'dtable.Rows [0]'返回被檢索*的第二行*,但它返回第二行*根據您的預期*,我不懷疑。那麼'querry'包含一個'ORDER BY'子句? –

+0

可以顯示示例輸入文件,也許是輸入excel文件的屏幕截圖。 –

回答