2011-09-09 11 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、Object値であります)

+0

が質問何ですか?そして、それはあなたが投稿したコードにどのように関連していますか? – svick

+0

「初期カタログ」というプロパティが見つかると、その値をどのように設定するのですか? – Cavide

答えて

0

を以下のように使用してみてください、最初のパラメータは、あなたがPRを設定するオブジェクトであります第2はプロパティ値です。

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

the documentation of SetValue()によるとセットアップにDTS接続

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