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

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

问题是,如果某人在列中输入太多数字值,则“ JET”似乎假定它是一个数字列,并且不再加载文本值.我知道您可以更改模板并为该列设置特定的数据类型,但是模板已经广泛使用,因此我宁愿在导入期间解决它.

现在,我尝试的是首先计算使用的列数,并准备一个具有定义的Columns集合的新DataTable,并将其DataType属性设置为typeof(string).可悲的是,JET似乎并没有考虑这一点,而是选择了自己的方式.我猜测即使我可以在此处使用强类型数据集,也无济于事…

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

请*请*:不要提供Excel自动化解决方案…

解决方法:

如果您有权访问注册表,请设置TypeGuessRows = 0和/或ImportMixedTypes = Text.看到这里更多信息INITIALIZATION SETTINGS

上一篇:C#访问Access数据库提示未安装ISAM


下一篇:Android将so库封装到jar包中并加载其中的so库