如何将变量传递给脚本任务 SSIS,Visual Studio 2010,c#
How to pass Variable to script task SSIS, Visual Studio 2010, c#
我正在尝试寻找将服务器名称作为变量传递给 SSIS 解决方案中的脚本任务的方法。我正在使用 VS 2010 和 c#。
在我的 SSIS 中,我定义了名称(字符串)变量,并在我的脚本任务中将此变量添加为 ReadOnlyVariable。
c# 代码如下所示:
当我尝试将本地 ServerName 传递给 OleDbDataAdapter 时(我猜)问题开始了,它与 strConn 完美配合,但不适用于我的 ServerName 变量。
我试过以 "User::Name" 的形式传递它,但没有成功。
如有任何建议,我们将不胜感激:)
最佳
您是否尝试准确地编写这段代码? (我假设您将变量 Name 定义为字符串)。您也可以参数化您的数据库名称。
string strConn = Dts.Connections[Dts.Variables["Name"].Value + "\MY_DB_NAME"].ConnectionString;
更新:
如果您想通过脚本任务连接到您的数据库,最好的做法是配置新的连接管理器(参见图片)。最重要的是您的连接名称(在我的例子中 "MY_NEW_CM")
如果您将服务器名称或数据库名称保存在变量中,则可以在连接管理器属性中使用表达式编辑器(见图)
稍后您可以在脚本任务中的代码中使用此配置的连接,如下所示:
ConnectionManager cm = Dts.Connections["MY_NEW_CM"];
我假设您想使用此连接管理器来执行 运行 某些 SQL 命令。
你可以这样做:
System.Data.SqlClient.SqlConnection sqlConn;
System.Data.SqlClient.SqlCommand sqlComm;
ConnectionManager cm = Dts.Connections["MY_NEW_CM"];
// Request an open connection
sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction);
// Do your work
sqlComm = new System.Data.SqlClient.SqlCommand("UPDATE YourTable SET YourColumn = 'SomeValue'", sqlConn);
int rowsAffected = sqlComm.ExecuteNonQuery();
我正在尝试寻找将服务器名称作为变量传递给 SSIS 解决方案中的脚本任务的方法。我正在使用 VS 2010 和 c#。
在我的 SSIS 中,我定义了名称(字符串)变量,并在我的脚本任务中将此变量添加为 ReadOnlyVariable。
c# 代码如下所示:
当我尝试将本地 ServerName 传递给 OleDbDataAdapter 时(我猜)问题开始了,它与 strConn 完美配合,但不适用于我的 ServerName 变量。
我试过以 "User::Name" 的形式传递它,但没有成功。
如有任何建议,我们将不胜感激:)
最佳
您是否尝试准确地编写这段代码? (我假设您将变量 Name 定义为字符串)。您也可以参数化您的数据库名称。
string strConn = Dts.Connections[Dts.Variables["Name"].Value + "\MY_DB_NAME"].ConnectionString;
更新:
如果您想通过脚本任务连接到您的数据库,最好的做法是配置新的连接管理器(参见图片)
如果您将服务器名称或数据库名称保存在变量中,则可以在连接管理器属性中使用表达式编辑器(见图)
稍后您可以在脚本任务中的代码中使用此配置的连接,如下所示:
ConnectionManager cm = Dts.Connections["MY_NEW_CM"];
我假设您想使用此连接管理器来执行 运行 某些 SQL 命令。
你可以这样做:
System.Data.SqlClient.SqlConnection sqlConn;
System.Data.SqlClient.SqlCommand sqlComm;
ConnectionManager cm = Dts.Connections["MY_NEW_CM"];
// Request an open connection
sqlConn = (System.Data.SqlClient.SqlConnection)cm.AcquireConnection(Dts.Transaction);
// Do your work
sqlComm = new System.Data.SqlClient.SqlCommand("UPDATE YourTable SET YourColumn = 'SomeValue'", sqlConn);
int rowsAffected = sqlComm.ExecuteNonQuery();