我想從Excel(xls)電子表格中導入數據。如果重複值出現在標題行中,我需要拋出一個錯誤。我正在使用OleDbDataReader來獲取工作表數據。我遇到的問題是.Net正在將一個唯一的整數附加到重複列的末尾,以便所有值都是唯一的。如何防止從自動追加整數OleDbDataReader.ExecuteReader複製列值
標題值在運行時將是未知的。如果找到重複的頭部值,則應該停止處理該文件。
例如,下列頭一個電子表格: 製造商,型號,年份,牌子 將顯示爲: 品牌,型號,年份,Make1
下面是一些代碼:
string selectString = "Select * from $Sheet1";
xlConnection = new OleDbConnection(connectionString);
OleDbCommand cmd = new OleDbCommand(selectString, xlConnection);
OleDbDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
for (int fieldIndex = 0; fieldIndex < reader.FieldCount; fieldIndex++)
{
string columnValue = reader.GetName(fieldIndex);
}
}
取得名稱退回品牌,型號,年份,品牌1
有沒有辦法阻止這種行爲?
非常接近我的答案將是。確保運行時不會附加數字以防止重複列名(這實際上會導致問題)的最好方法是使用AS關鍵字明確設置要在SQL中返回的列名。 +1。 – David
在運行時不會知道列名。我們使用的導入代碼允許用戶導入電子表格中最多包含255列的任何文件。 – Brian
如果有重複的列,你是否還想繼續處理文件? – Arun