2012-06-20 32 views
0

我最近實現了一個解決方案來獲取SSIS包並使用VB.net重新配置包的連接字符串。該代碼非常簡單:無法訪問sqlserver.dts.runtime中的Collections.Item屬性與C#

Const packageLocation As String = "C:\mylocation" 
    Dim app As New Application 
    Dim pkg = app.LoadPackage(packageLocation, Nothing) 

    pkg.Connections.Item(0).ConnectionString = "Data Source=MySource" 

我需要寫在C#中的同一段代碼,因爲這是我們的QA團隊的母語,但我似乎無法能夠訪問Item屬性:

 const string PackageLocation = @"C:\MyLocation"; 
    Application app = new Application(); 
    Package pkg = app.LoadPackage(PackageLocation, null); 

    pkg.Connections.Item(0).ConnectionString = "Data Source=Mysource"; 

我不明白爲什麼我不能在我的代碼的C#版本中訪問Connections.Item,但我可以使用VB版本。我究竟做錯了什麼?

+0

什麼QA團隊將會使用語言嗎? – Shyju

回答

2

在C#中,數組語法使用方括號:

pkg.Connections.Item[0].ConnectionString = "Data Source=Mysource"; 

或者,由於Item似乎是爲Connections類的默認索引器,只要把它完全:

pkg.Connections[0].ConnectionString = "Data Source=Mysource"; 
+0

它看起來像我犯了一個錯誤,通過複製VB代碼並使用那些補丁而不是括號。我完全刪除了.Item並單獨使用索引。謝謝史蒂夫! – Brian