OLEDB连接exception:在C#中的参数无效

这是我第一次尝试从excel表使用oledbconnection与Dapper读取我的自动化testing脚本的testing数据。 无论我做什么,我都会得到无效的参数exception。 我需要根据列A和B中的值从列C中select单元格。下面是代码:

class ExcelDataAccess { public static string TestDataFileConnection() { var fileName = ConfigurationManager.AppSettings[@"Path\TestData.xlsx"]; var con = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source = {0}; Extended Properties='Excel 12.0 Xml;HDR=YES;'", fileName); return con; } public static UserData GetTestData(int TestCaseNumber, string Key) { using (var connection = new OleDbConnection(TestDataFileConnection())) { connection.Open(); var query = string.Format("select * from [DataSet$] where [TestCaseNumber]='{0}' and [Key]='{1}'", TestCaseNumber, Key); var value = connection.Query<UserData>(query).FirstOrDefault(); connection.Close(); return value; } } } 

在UserData类中,我使用表头获取并设置公共variables。

谢谢你的帮助!

我猜这条线是问题所在:

 var fileName = ConfigurationManager.AppSettings[@"Path\TestData.xlsx"]; 

你真的在你的app.config中有一个键入Path\TestData.xlsx的条目吗? 你能显示你的应用程序的.config文件的那一行吗?

我想你可能使用了错误的钥匙。 仔细检查你的应用程序的.config文件的appSettings部分中的条目。