连接到SSIS中Script Task中的SQL数据库

Nea*_*alR 16 c# sql sql-server ssis script-task

在SSIS中的脚本任务内部,我需要调用SQL数据库.我有一个连接字符串是在我将数据库添加到数据源文件夹时创建的,但是现在我不确定如何在C#代码中引用它.我知道如何在ASP网站的代码中执行此操作,但似乎SSIS应该有更直接的方法.

编辑

这行代码实际上最终会抛出异常:

sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction);
Run Code Online (Sandbox Code Playgroud)

它写道:"无法将'System._ComObject'类型的COM对象强制转换为类类型'System.Data.SqlClient.SqlConection.'"

Die*_*ego 22

你不能使用来自脚本任务内部的连接管理器的配置,如:conectionManager1.exceuteSQLStatment(...)

一旦你在脚本任务"内部",你需要像变量一样访问CM:

ConnectionManager cm;
System.Data.SqlClient.SqlConnection sqlConn;
System.Data.SqlClient.SqlCommand sqlComm;

cm = Dts.Connections["conectionManager1"];

sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction);
sqlComm = new System.Data.SqlClient.SqlCommand("your SQL Command", sqlConn);
sqlComm.ExecuteNonQuery();

cm.ReleaseConnection(sqlConn);
Run Code Online (Sandbox Code Playgroud)

  • 通过将数据库连接从OLEDB更改为ADO.Net,上面列出的代码对我有用. (2认同)
  • 请注意,根据 Microsoft 文档,这**不适用于 OLEDB,所有这些都记录在此处:https://learn.microsoft.com/en-us/sql/integration-services/extending-packages-scripting /task/连接到脚本任务中的数据源 (2认同)