2014-01-21 68 views
0

我有一個csv文件,有很多列。我正在嘗試使用OleDbDataAdapter讀取一些列,該列在許多大文件上工作正常,但列數不多。OleDbException - 「記錄太大」,而閱讀csv

string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path.GetDirectoryName(_tempFilePath) + "; Extended Properties='text;HDR=YES;';"; 
      using (OleDbConnection conn = new OleDbConnection(connectionString)) { 
       OleDbCommand cmd = new OleDbCommand(String.Format(selectCmd.Command, Path.GetFileName(_tempFilePath))); 
       cmd.Connection = conn; 
       OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); 
       adapter.Fill(dataTable); 
      } 

在運行時選擇CMD是相當簡單:

SELECT 
    [timestampGMT0600] AS [MeasureTimeStamp], 
    Bladepitch10min AS [MeasureValue], 
    20 AS [MeasureId] 
FROM [{0}] WHERE (NOT (Bladepitch10min) IS NULL) AND(NOT ([timestampGMT0600]) IS NULL) 

我使用還創建一個SCHEMA.INI文件,用領域列爲「文本寬度250」的代碼,一直在過去工作。

谷歌搜索錯誤給出了主要MS Access結果,提及2000字符的限制,可以通過切換到備註字段來克服...但由於我沒有使用Access,所以我怎麼可以繞過這個想法?

我寧可不切換到不同的工具集,因爲它嵌入到實時系統中,並且偶爾會發生此錯誤。

回答

0

我懷疑CSV文件中的一個值超過250個字符。嘗試在SCHEMA.INI文件中用「備忘錄」替換「文本寬度250」(您只需爲具有更寬值的列執行此操作)。

+0

非個別字段是。我甚至用fldxxx編號替換了每個字段,仍然是同樣的問題。我相信這是因爲所有連接的字段長度超過6000個字符。 –