11
|
Keith Sirmons · 技术社区 · 15 年前 |
![]() |
1
7
正如您所发现的,OLEDB使用的是Jet,它的调整方式受到限制。如果设置为使用OleDbConnection读取Excel文件,则需要设置
也就是说,如果您愿意使用替代引擎从Excel文件中读取,您可以考虑尝试
ExcelDataReader
. 它将所有列作为字符串读取,但允许您使用dataReader.Getxxx方法获取类型化值。这是一个样本
|
![]() |
2
2
注意:对于64位操作系统:
|
![]() |
3
1
在上查看最终答案 this page . 只是注意到你提到的页面上写着同样的东西。。。 更新 问题似乎出在喷气发动机本身,而不是ADO。一旦JET决定了类型,它就会坚持下去。之后所做的一切都没有效果;类似于将值强制转换为SQL中的字符串(例如Cstr([Column]),只会返回一个空字符串。 在这一点上(如果没有其他答案),我会选择其他方法:修改电子表格;修改注册表(不太理想,因为你会弄乱JET使用的其他应用的设置);Excel自动化或不使用JET的第三方组件。 如果自动化选项是慢,那么也许只是使用它来保存一个不同的格式,更容易处理的电子表格。 |
![]() |
4
0
我也遇到过同样的问题,我认为这是很多人经常经历的事情。以下是一些建议的解决方案,其中许多我已经尝试实施:
这些都没有为我工作过(尽管我相信他们为其他人工作过)。我同意@Asher的观点,这个问题确实没有好的解决办法。在我的软件中,我只是向用户显示一条错误消息(如果任何必需的列包含空值),指示他们 format all columns as "Text" . 老实说,我想 this book 更适用于这种情况。这一问题已经多次提到:
虽然我还没有发现任何官方的文件,我认为这是一个非常明确的,这是一个有意的设计决定,只是如何 Jet Database Library 作品。我不太愿意称这个库完全无用,因为我认为对于许多人来说,这些解决方案中的一些确实有效,但到目前为止,对于我的项目,我得出的结论是,这个库不能在一个列中读取多个数据类型,不适合一般的数据检索。 |
![]() |
Terio · Typescript:使用变量的值创建自定义类型 2 年前 |
![]() |
Kareem Adel · 创建函数类型(TypeScript接口) 3 年前 |
![]() |
MatÄj VondráÄek · 如何在c#方法中传递类型? 3 年前 |
![]() |
kreo · 为什么&[T]参数也接受&Vec? 7 年前 |
![]() |
Jiji · 将简单对象强制转换为简单的通用接口 7 年前 |