【发布时间】:2013-03-26 15:25:14
【问题描述】:
我正在运行一些使用 NUnit 用 C#.NET 编写的测试用例(这是在 Visual Studio 2010 上)。我使用的方法从另一个开发团队提供给我的 Excel .xls (2003) 文件中读取用户和地址数据。当我在不更改 Excel 文件的情况下运行测试时,一切正常。如果我更改 Excel 文件中的 一些 值,例如名字或姓氏,或街道地址,它仍然有效。但是,如果我更改邮政编码字段,测试将失败,并且我收到一条错误消息:
"System.ArgumentException: 'System.DBNull' 类型的对象不能 转换为类型 'System.Double'"
即使我输入完全相同的值也会发生这种情况。换句话说,如果现有的邮政编码值是“11111”并且我根本不修改文件,那么当我运行它时测试就可以工作了。但是,如果我修改该字段并重新键入“11111”,则读者会将其视为 NULL 值并引发上述错误。在电子表格的其他行(我没有修改的行)中,值返回为“11111.0d”并且一切正常,因此看起来读者正在将这些值作为 Double 读取(我不是确定为什么)。但如果我自己输入值,它就不会这样读取。
我读过的一篇文章建议在连接字符串中使用IMEX=1 将混合值作为文本读取。然而,这并没有奏效。当我添加IMEX=1 时,我收到了"Could not find installable ISAM" 消息。
提前感谢您的帮助。
【问题讨论】:
标签: c# visual-studio-2010 excel automation nunit