1

我正在尝试将 excel 与我的 coded-ui 测试一起使用,但我的连接字符串不起作用。你能帮我解决这个问题吗?我很喜欢这个:)好的,在这里->我的数据目录是C:\(直接在C驱动器中),我的连接字符串是

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Data1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

这完美地工作。但我希望我的文件位于“D:\TestProjects\Coded2\DataFiles\Data1.xls”中,但我做不到。得到一些错误和测试失败。

我应该如何编写我的数据目录?

感谢您的帮助。

4

1 回答 1

1

有效且存在问题的版本是

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Data1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

失败的版本显示在评论中,它是

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\TestProjects\Coded2\DataFiles\Data1.xls;defaultdir=.;driverid=79‌​0;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

显着的区别在于反斜杠\在起作用的那个中加倍,因为它们是字符串中的转义字符。C# 将每个反斜杠加上以下字母作为转义序列。所以文件名D:\TestProjects\Coded2\DataFiles\Data1.xls\T,\C\D并且\D编译器说其中一个或多个无法识别。

您还可以编写带有前导的 C# 字符串,@这意味着反斜杠本身。所以如果写成非工作版本应该可以工作

[DataSource("System.Data.Odbc", @"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\TestProjects\Coded2\DataFiles\Data1.xls;defaultdir=.;driverid=79‌​0;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]
于 2013-10-22T18:49:18.683 回答