使用Jet时OleDbDataAdapter数据类型不匹配

本文关键字:数据类型 不匹配 OleDbDataAdapter Jet 使用 | 更新日期: 2023-09-27 17:58:40

我正在使用OleDbDataAdapter(确切地说是Microsoft.ACE.OLEDB.12.0)从Excel工作簿中检索数据。对于一个表,我使用的是类型化数据集,但对于另一个表我不能这样做,因为列的数量是未知的(Excel模板可能会生成额外的列)。

问题是,如果有人在一列中输入了太多数值,"JET"似乎会认为这是一个数值列,并且不再加载文本值。我知道你可以更改模板并为该列设置特定的数据类型,但模板已经广泛使用,所以我宁愿在导入时解决它。

现在,我尝试的是首先计算使用的列的数量,准备一个具有已定义的columns集合的新DataTable,并将其DataType属性设置为typeof(string)。遗憾的是,JET似乎并没有考虑到这一点,仍然选择了自己的方式。我猜,即使我可以在这里使用强类型数据集,也无济于事。。。

有人知道如何告诉JET如何导入数据,这样我就不必面对交付新模板版本的负担吗?

**:不要附带Excel自动化解决方案。。。

使用Jet时OleDbDataAdapter数据类型不匹配

如果您有权访问注册表集TypeGuessRows=0和/或ImportMixedTypes=Text。请参阅此处了解更多信息INITIALIZATION SETTINGS