2015-02-06 76 views
3

我正在處理C#(和SQL Server)中的Excel數據。我需要能夠向有問題的任何Excel行報告最終用戶。自然的方法是給Excel的行號。但是,我不清楚如何獲得該行號以供參考。我可以使用OleDB獲取Excel行號嗎?

我有這樣的事情:

OleDbCommand cmd = new OleDbCommand("SELECT * FROM MyWorkSheet$", conn); 

,並希望這樣的事情:

OleDbCommand cmd = new OleDbCommand("SELECT ExcelRowId,* FROM MyWorkSheet$," conn); 

SQL的:ROW_NUMBER()不工作,因爲我不能提供適當的ORDER BY。 Excel的:ROW()在查詢字符串中不可訪問。

回答

1

到目前爲止答案似乎是「不」,但我可以稍後創建它。

int row; 
foreach (DataTable t in ds.Tables) 
{ 
    t.Columns.Add("RowNum",typeof(Int32)); 
    row = 1; 
    foreach (DataRow r in t.Rows) 
    { 
     r["RowNum"] = row++; 
    } 
} 

這似乎是可靠的,但它仍然感覺像那種事情可以更自然地發生。

相關問題