2011-09-09 34 views
1

我完成我的連接循環的初始目錄throught腳本taske的價值:SSIS:如何設置

for (int x = 0; x < Dts.Connections.Count; x++) 
{ 

    switch (Dts.Connections[x].Name.ToString()) 
    { 
     case "m": 

      for (int z = 0; z < Dts.Connections[x].Properties.Count; z++) 
      { 
         if (Dts.Connections[x].Properties[n].Name = "Initial Catalog"){ 
       Dts.Connections[x].Properties[n].SetValue(object o, object value);} 
      } 

      break; 
    }     
} 

以上是據我已經得到了,setValue方法的簽名(對象o,對象的值)

+0

有什麼問題?這與您發佈的代碼有什麼關係? – svick

+0

當我找到名爲「初始目錄」的屬性時,我如何設置它的值? – Cavide

回答

0

根據the documentation of SetValue(),第一參數是要在其上設置PR對象第二個是財產價值。因此,它應該是這樣的:

for (int i = 0; i < Dts.Connections.Count; i++) 
{ 
    var connection = Dts.Connections[i]; 
    if (connection.Name == "m") 
    { 
     for (int j = 0; j < connection.Properties.Count; j++) 
     { 
      var property = connection.Properties[j]; 

      if (property.Name == "Initial Catalog") 
       property.SetValue(connection, "some value"); 
     } 
    } 
} 

或者使用LINQ:

var connection = Dts.Connections.Cast<ConnectionManager>() 
           .First(cm => cm.Name == "m"); 
var property = connection.Properties.Cast<DtsProperty>() 
            .Single(p => p.Name == "Initial Catalog"); 
property.SetValue(connection, "some value"); 

(該Cast() s爲必要的,因爲集合是,不幸的是,不是通用的。)

0

使用嘗試使用以下設置一個DTS連接

ConnectionManager cn = Dts.Connections.Add("OLEDB"); 
cn.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;"; 
相關問題