我正在尝试使用我的编码ui测试excel,但我的连接字符串不起作用。你能帮帮我吗?我很喜欢这个:) 好的,这里 - >我的数据目录是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”中,我无法做到。得到一些错误和测试失败。
我应该如何编写数据目录?
感谢您的帮助。
答案 0 :(得分: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=790;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=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]