Excel 未找到数据源名称,并且未指定默认驱动程序;。无法获取连接“;目的地连接OLEDB“;

Excel 未找到数据源名称,并且未指定默认驱动程序;。无法获取连接“;目的地连接OLEDB“;,excel,wpf,ssis,odbc,oledb,Excel,Wpf,Ssis,Odbc,Oledb,我已经创建了一个SSIS包来将excel导入sql。我已经通过表达式设置了连接字符串和excel文件路径 在这之后,我将尝试调用package by c#WPF应用程序by Microsoft.SqlServer.Dts.Runtime.dtsesecresult并传递连接字符串和excel路径的值。我的代码如下所示 Application app = new Application(); Package package = null; //Load the SSIS Package which

我已经创建了一个SSIS包来将excel导入sql。我已经通过表达式设置了连接字符串和excel文件路径

在这之后,我将尝试调用package by c#WPF应用程序by

Microsoft.SqlServer.Dts.Runtime.dtsesecresult
并传递连接字符串和excel路径的值。我的代码如下所示

Application app = new Application();
Package package = null;
//Load the SSIS Package which will be executed
package = app.LoadPackage("D:\\EMS-Docs\\new\\SSIS\\SSISProject\\obj\\Development\\Package2.dtsx", null);
//Pass the varibles into SSIS Package

//Microsoft.SqlServer.Dts.Runtime.Variables myVars = package.Variables;

package.Variables["User::EXLPath"].Value = "D:\\EMS-Docs\\SSIS\\PRACTICAL_1901_LOT-2.xls";
package.Variables["User::SQLConn"].Value = GlobalClass.TransactionalDBConnectionString;


//Execute the SSIS Package and store the Execution Result
Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
错误

SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。 OLE DB记录可用。源:“用于ODBC驱动程序的Microsoft OLE DB提供程序”Hresult:0x80004005说明:“[Microsoft][ODBC驱动程序管理器]未找到数据源名称,且未指定默认驱动程序”。 无法获取连接“DestinationConnectionOLEDB”。连接可能配置不正确,或者您对此连接没有正确的权限

错误原因 主要错误是:

“[Microsoft][ODBC驱动程序管理器]未找到数据源名称,且未指定默认驱动程序”

这意味着主要问题在连接管理器或连接字符串中

可能的解决方案
  • 确保已将连接管理器和数据流任务
    延迟验证
    属性设置为
    True
  • 通过使用相同的变量值从visual studio执行包,确保传递的是有效的连接字符串值
  • 确保应用程序模式(32位/64位)与ODBC驱动程序版本相同。例如:如果安装了32位ODBC驱动程序,请确保应用程序以32位模式运行
  • 如果要连接到SQL Server,可以使用SQL本机客户端或用于SQL Server的Microsoft OLEDB提供程序,而不是ODBC提供程序
  • 补充资料 此外,有关错误可能原因/解决方案的更多信息,请参阅以下知识库文章:


    Hi@Rajesh,Web/WCF应用程序通常是沙盒式的,这意味着本地安全性不会轻易允许用户访问本地资源,因为D:drive中的Excel文件可能就是这种情况。