【问题标题】:Data source name not found and no default driver specified". Failed to acquire connection "DestinationConnectionOLEDB"未找到数据源名称且未指定默认驱动程序”。无法获取连接“DestinationConnectionOLEDB”
【发布时间】:2019-05-23 11:21:44
【问题描述】:

我创建了一个 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 记录可用。来源:“Microsoft OLE DB Provider for ODBC Drivers”Hresult:0x80004005 描述:“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”。 无法获取连接“DestinationConnectionOLEDB”。连接可能未正确配置,或者您可能没有此连接的正确权限。

【问题讨论】:

  • 嗨@Rajesh,Web/WCF 应用程序通常是沙盒化的,这意味着本地安全性不会像 D: 驱动器中的 Excel 文件那样轻易地允许访问本地资源。

标签: excel wpf ssis odbc oledb


【解决方案1】:

错误原因

主要错误是:

“[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序”

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

可能的解决方案

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

其他信息

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2013-09-06
    相关资源
    最近更新 更多