这是我第一次尝试使用opedbconnection与Dapper从excel表读取自动化测试脚本的测试数据。无论我做什么,我都会得到无效的争论异常。我需要根据A列和B列中的值从C列中选择单元格。以下是代码:
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类中,我使用表头来获取和设置公共变量。
感谢您的帮助!
答案 0 :(得分:1)
我猜这一行是问题所在:
var fileName = ConfigurationManager.AppSettings[@"Path\TestData.xlsx"];
您的app.config中是否有一个条目,其密钥为Path\TestData.xlsx
?你能展示你的应用程序的.config文件吗?
我认为您可能使用了错误的密钥。请仔细检查您应用的.config文件的appSettings
部分中的条目。