连接管理器接受ADO.NET或OLEDB连接类型之一

时间:2012-06-28 15:18:12

标签: c# ado.net ssis database-connection oledb

请查看以下代码。它只接受ADO.NET连接类型,我想做的是使它也适用于OLEDB。换句话说,如果ConnectionManager呈现OLEDB类型连接,则不应该失败。它只能使用ADO.NET或OLEDB连接(我不是同时寻找它们)。

using Microsoft.SqlServer.Dts.Runtime.Wrapper;

private SqlConnection sqlConnection;

public override void AcquireConnections(object transaction)
{
    if (ComponentMetaData.RuntimeConnectionCollection[0].ConnectionManager != null)
    {
        ConnectionManager cm = Microsoft.SqlServer.Dts.Runtime.DtsConvert.GetWrapper(ComponentMetaData.RuntimeConnectionCollection[0].ConnectionManager);
        ConnectionManagerAdoNet cmado = cm.InnerObject as ConnectionManagerAdoNet;

        if (cmado == null)
            throw new Exception("The ConnectionManager " + cm.Name + " is not an ADO.NET connection.");

        sqlConnection = cmado.AcquireConnection(transaction) as SqlConnection;
        sqlConnection.Open();
    }
}

对此有任何帮助表示赞赏!感谢。

1 个答案:

答案 0 :(得分:0)

找到我发布的另一个question的答案。刚刚更新以供参考。