CSV 列返回为空

发布于 2024-10-28 12:54:23 字数 210 浏览 0 评论 0原文

我已通过 Microsoft.Jet.OLEDB.4.0 提供程序解析 CSV。这对于我们的大多数任务来说都运行良好,但最近我注意到一个问题。

我有一个 CSV,其中有一个名为“评级”的列,这通常是一个整数,但有时它会是“1-2”或日期,例如“1/1/2010”。我将其导入的数据表已将其列显式设置为字符串,但当读取非整数字段时,它变为空。

我有什么想法可以解决这个问题吗?

I have parsing a CSV via the Microsoft.Jet.OLEDB.4.0 provider. Which has been working fine for most of our tasks, but recently I've noticed an issue.

I have a CSV which has a column called Rating, this is generally an integer but occasionally it will be "1-2" or a Date e.g "1/1/2010". The datatable I am importing it into has had its columns explicitly set to strings but when a non-integer field is read it is null instead.

Any ideas how I get round this??

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

瑶笙 2024-11-04 12:54:23

使用 schema.ini 文件(位于包含 .csv 的文件夹中)并正确指定列数据类型。

Use a schema.ini file (in the folder that contains your .csv) and specify the columns data types correctly.

美人迟暮 2024-11-04 12:54:23

可能发生的情况是,正在嗅探列中的前几个字段以确定数据类型,然后当存在不同类型的后续列时,它们将被删除。

我相信您可以通过将 IMEX=1 添加到连接字符串中的扩展属性来关闭此行为。这会将阅读器设置为混合模式,该模式会将字段读取为文本。然后你可以在另一遍中浏览并自己设置类型。

Likely what is happening is that the first few fields in the column are being sniffed to determine data type, and then when there are later columns of a different type, they're dropped.

I believe you can turn off this behavior by adding IMEX=1 to your Extended Properties in the connection string. This sets the reader to Intermixed Mode which will read the fields as text. Then you can go through in another pass and set the types yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文