我正在尝试使用编码的ui和excel电子表格(xlsx)中的动态数据。我的DataSource属性似乎存在问题。我收到一条错误,说无法连接到数据源。这是我的连接字符串:
[DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=|DataDirectory|C:\\Test1.xlsx;defaultdir=C:\\;driverid=1046;maxbuffersize=2048;pagetimeout=5", "Sheet1$", DataAccessMethod.Sequential), DeploymentItem("Test1.xlsx"), TestMethod]
xlsx文件有效并位于正确的位置。
由于
答案 0 :(得分:2)
将文件另存为xls而不是xlsx并删除“| DataDirectory |”来自连接字符串。这应该有助于:)
答案 1 :(得分:1)
dbq 子句看起来不对。 |DataDirectory|
部分是与值的其余部分连接的参数。所以实际上该子句是从名为ValueOfDataDirectoryC:\\Test1.xlsx
的文件中获取数据。 Microsoft文档(请参阅http://msdn.microsoft.com/en-us/library/ee624082.aspx)显示了示例(我添加了换行符):
DataSource("System.Data.Odbc",
"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};
dbq=|DataDirectory|\\Data.xls;
defaultdir=.;driverid=790;maxbuffersize=2048;
pagetimeout=5;readonly=true",
"Sheet1$", DataAccessMethod.Sequential), TestMethod]
请注意上面没有任何C:
。
尝试将 dbq 子句更改为dbq=C:\\Test1.xlsx
。
测试
答案 2 :(得分:1)
将您的.Xls
文件添加到解决方案中,并记下文件的路径
尝试更改
[DataSource("System.Data.Odbc",
"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};
dbq=[FullPath Of your .xls file];
defaultdir=.; driverid=790;
maxbuffersize=2048; pagetimeout=5; readonly=true",
"Sheet1$", DataAccessMethod.Sequential), TestMethod]
EG:
[DataSource("System.Data.Odbc",
"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};
dbq=C:\\Users\\user1\\documents\\visual studio 2012\\Projects\\Demo\\Demo\\Book1.xlsx;
defaultdir=.;driverid=790;
maxbuffersize=2048;pagetimeout=5;readonly=true",
"Sheet1$", DataAccessMethod.Sequential), TestMethod]
答案 3 :(得分:1)
尝试将xls文件与此连接字符串一起使用:
[DataSource("System.Data.Odbc", @"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Test1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true","Sheet1$", DataAccessMethod.Sequential), TestMethod]
有同样的问题,多亏了这里它现在已经解决了:)