1. 程式人生 > >C# OLEDB 讀取 Excel 記錄出現"標準表示式的型別不匹配"

C# OLEDB 讀取 Excel 記錄出現"標準表示式的型別不匹配"

使用OLEDB 進行 SELECT 操作時,出現 "標準表示式的型別不匹配" 的錯誤,原因是驅動解析 EXCEL 資料型別時,將文字識別為數字,導致 WHERE 子句中的條件欄位也給定的字元型別不匹配。

如:select top 1 * from [Sheet1$] where phone="888888"

在連線字串中,加上 Extended Properties = "Excel 12.0 Xml;HDR=YES;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text” 依然出錯。

根據原理,驅動是預設遍歷前8行資料來識別資料型別,因此想到在第一行加入文字,如所有資料列的值全設為 "TEXT",由於對資料進行只讀操作,並指定查詢條件,所以增加的這一行對結果沒有任何影響。

增加此文字行後,經測試正常返回結果,處理成功。

參考:

http://blog.csdn.net/aking8736/article/details/6718768