OLEDBconnection异常:c#中的参数无效

时间:2017-11-28 21:03:30

标签: c# excel oledbexception

这是我第一次尝试使用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类中,我使用表头来获取和设置公共变量。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我猜这一行是问题所在:

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

您的app.config中是否有一个条目,其密钥为Path\TestData.xlsx?你能展示你的应用程序的.config文件吗?

我认为您可能使用了错误的密钥。请仔细检查您应用的.config文件的appSettings部分中的条目。