我想讀取製表符分隔的Excel .csv文件。每列有8列混合數據。我會張貼輸出的圖片,但是我沒有足夠的聲望去做(這是我的第一篇文章,所以請耐心等待)。實質上,輸出表dt只包含帶有亂序列標題的單個列。C# - 使用Microsoft Jet OLEDB讀取製表符分隔文件時遇到問題
這裏是我使用的代碼:
從App.config中:
<add key="cnProvider" value="Microsoft.Jet.OLEDB.4.0"/>
<add key="cnProperties" value=""text;HDR=Yes;FMT=TabDelimited;CharacterSet=65001""/>
從Program.cs的:
string sqlStatement_1 = ConfigurationSettings.AppSettings["sqlStatement_1"];
string cnProperties = ConfigurationSettings.AppSettings["cnProperties"];
string cnStr = "Provider=" + cnProvider + ";Data Source=" + folder + ";Extended Properties=" + cnProperties + ";";
OleDbDataAdapter Adp;
Adp = new OleDbDataAdapter(sqlStatement_1, cnStr);
using (Adp) {
Adp.Fill(dt);
}
此代碼工作得很好的一個逗號分隔的文件當將FMT更改爲分隔符而不是TabDelimited時。有任何想法嗎?文件大小小於1000行,所以執行速度並不是什麼大問題。該代碼不會產生任何例外。
提前致謝!
這裏是一個很好的網站,你應該看看關於如何使用OLEDB [C#的ConnectionStrings]來配置一個連接字符串(http://www.connectionstrings.com/microsoft-jet-ole-db- 4-0 /)請按照這些步驟,我很確定你會很快識別出錯的地方..也做一個谷歌搜索如何使用'Fill'方法以及如何使用'using(){} '語句也需要編輯原始問題並顯示app.Config文件中已定義此ConfigurationSettings.AppSettings [「sqlStatement_1」];「 – MethodMan
」的設置的位置,您是否會遇到任何異常,如果是的話,是否可以編輯與這些問題。 – BMac
當你可以在app.config文件設置中添加所有必要的屬性時,沒有必要在你的代碼中動態構建'cnStr' ..看看我之前評論中提到的connectionstring鏈接 – MethodMan