OleDbException - 读取csv时“记录太大”

时间:2014-01-21 14:08:24

标签: csv oledb

我有一个csv文件,它有很多列。我正在尝试阅读使用和OleDbDataAdapter的一些列,它在许多大文件上工作正常,尽管没有那么多列。

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,任何想法我怎么可能绕过这个?

我宁愿不切换到不同的工具集,因为它嵌入到实时系统中,并且偶尔会在此错误之外正常工作。

1 个答案:

答案 0 :(得分:0)

我怀疑您的CSV文件中的一个值超过250个字符。尝试使用SCHEMA.INI文件中的“备注”替换“文本宽度250”(您只需要对其中包含更宽值的列执行此操作)。