2012-06-28 60 views
0

請看下面的一段代碼。它只接受ADO.NET連接類型,我想要做的就是使它適用於OLEDB。換句話說,如果ConnectionManager提供了OLEDB類型的連接,它不應該失敗。它只會使用ADO.NET或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(); 
    } 
} 

對此的任何幫助表示讚賞!謝謝。

回答

0

在我發佈的另一個question上找到答案。剛剛更新以供參考。