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];
返回第二行。 (即)年份詳情
我無法在第一行獲取月份詳情。
顯示查詢和連接字符串。 –
你正在執行的sql語句是什麼?您是否記得正確地對結果集進行排序?我懷疑'dtable.Rows [0]'返回被檢索*的第二行*,但它返回第二行*根據您的預期*,我不懷疑。那麼'querry'包含一個'ORDER BY'子句? –
可以顯示示例輸入文件,也許是輸入excel文件的屏幕截圖。 –