我在连接管理器中配置了OLEDB连接,我希望在脚本中使用它。该脚本需要调用存储过程,然后创建缓冲区行。我已将该连接添加到可用于脚本的连接,并且这是我的代码。在脚本组件(SSIS)中使用现有连接
Boolean fireagain = true;
SqlConnection conn = new SqlConnection();
conn = (SqlConnection)(Connections.Connection
.AcquireConnection(null) as SqlConnection);
SqlCommand cmd = new SqlCommand();
conn.Open();
ComponentMetaData.FireInformation(
0, "Script", "Connection Open", string.Empty, 0, ref fireagain);
cmd.Connection = conn;
cmd.CommandText = "up_FullTextParser_select" ;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("Phrase", DbType.String).Value = Row.Keywords;
cmd.Parameters.AddWithValue("SpecialTerm", DbType.String).Value = "Exact match";
cmd.Parameters.AddWithValue("StopListId", DbType.Int32).Value = 0;
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while (rdr.Read())
{
TermsBuffer.AddRow();
TermsBuffer.Term = rdr[0].ToString();
}
conn.Close();
无论如何,它似乎失败的AcquireConnection。我转换这个错误?我应该使用不同的方式来使用脚本外部定义的连接吗?
请发布任何和所有错误。 – 2010-02-18 07:37:19
'conn =(SqlConnection)(Connections.Connection .AcquireConnection(null)as SqlConnection);' - 这是多余的。用'as',你将返回的对象转换为'SqlConnection'。然后,你将这个'SqlConnection'转换为'SqlConnection'类型,它的定义已经是这样了,除非它是空的,在这种情况下它不能被转换。 – tradeJmark 2018-02-27 19:33:53