找不到数据源名称,也未指定默认驱动程序。”无法获取连接“ DestinationConnectionOLEDB”

时间:2019-05-23 11:21:44

标签: excel wpf ssis odbc oledb

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

之后,我尝试通过

通过c#WPF应用程序调用程序包

Microsoft.SqlServer.Dts.Runtime.DTSExecResult以及连接字符串和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提供程序”结果:0x80004005描述:“未找到[Microsoft] [ODBC驱动程序管理器]数据源名称,未指定默认驱动程序”。   无法获取连接“ DestinationConnectionOLEDB”。连接可能配置不正确,或者您对此连接没有正确的权限。

1 个答案:

答案 0 :(得分:1)

错误原因

主要错误是:

  

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

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

可能的解决方案

  1. 确保已将连接管理器和“数据流任务”的Delay Validation属性设置为True
  2. 通过从Visual Studio中使用具有相同变量值的包来确保传递有效的连接字符串值。
  3. 确保应用程序模式(32位/ 64位)与ODBC驱动程序版本相同。例如:如果您安装了32位ODBC驱动程序,请确保您以32位模式运行该应用程序
  4. 如果要连接到SQL Server,则可以使用SQL Server的SQL Native Client或Microsoft OLEDB提供程序代替ODBC提供程序

其他信息

此外,您可以参考以下知识库文章,以获取有关错误可能原因/解决方案的更多信息: