【发布时间】:2012-01-30 18:37:06
【问题描述】:
我有一个 C# winforms 正在从 csv 文件中读取一列。它正确读取了 4 列中的 3 列。 csv 文件中的第 4 列是 S4,但数据集显示的是 4。
代码是:
string conn = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0; Data"
+ "Source={0}; Extended Properties=""text;HDR=YES;FMT=DELIMITED""",
strDirectoryPath);
OleDbConnection oleDBConn = new OleDbConnection(conn);
oleDBConn.Open();
OleDbDataAdapter da = new OleDbDataAdapter("Select * FROM [" + strFileName + "]",
conn);
DataSet ds = new DataSet();
da.Fill(ds);
csv 数据样本为:
AA0013 Incident Incident S4
AA0016 Incident Incident S3
AA0017 Incident Incident S3
AA0023 Incident Incident S3
AA0076 Issue Issue S3
AA0079 Incident Incident S6
AA0082 Issue Issue S6
AA0084 Incident Incident S6
AA0085 Incident Incident S6
这是什么原因造成的,我该如何解决?
【问题讨论】:
-
您能否提供几行 CSV 示例?
-
这是一篇关于配置 schema.ini 文件以将 OleDb 内容与 CSV 一起使用的文章,特别是分隔符。 weblogs.asp.net/fmarguerie/archive/2003/10/01/29964.aspx
-
我很确定这样的事情不需要修改注册表。特别是因为前 3 行被准确检索
-
完全同意。我实际上是指该链接msdn.microsoft.com/en-us/library/ms709353.aspx在那篇文章中谈论配置它。这可能无济于事,因为它正在正确读取第一几行,只是需要检查一下。
-
该数据看起来不像 CSV。这是您正在使用的实际数据,还是您真的希望在恰好具有 csv 扩展名的文件中处理固定文件格式?