我有一个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);
}运行时的select 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文件,其中的字段显示为"Text Width 250",这在过去一直有效。
谷歌错误给出了大多数MS访问结果,提到了2000个字符的限制,这可以通过切换到备注字段来克服……但是由于我没有使用Access,你知道我该如何解决这个问题吗?
我不想切换到不同的工具集,因为它被嵌入到一个实时系统中,并且有时除了这个错误之外工作得很好。
发布于 2014-01-29 21:06:06
我怀疑您的CSV文件中的某个值超过250个字符。尝试在您的SCHEMA.INI文件中将"Text Width 250“替换为"Memo”(您应该只需要对其中包含更宽值的列执行此操作)。
https://stackoverflow.com/questions/21260447
复制相似问题