2012-01-11 4 views
0

C#アプリケーションからSSISパッケージを正常に実行できます。 .NET(C#)アプリケーションからSSISパッケージ内の特定のタスクを実行する方法はありますか?C#アプリケーションからSSISタスクを実行する

+0

パッケージ全体を実行することができると思います。 –

+0

タスクのプロパティにアクセスし、タスクのプロパティを実行する代わりに変更するのはどうでしょうか?それは可能ですか? – ssokol91

+1

絶対に。 [This](http://learnbycoding.com/2011/07/creating-a-simple-ssis-package-programmatically-using-c/#.Tw42oKVSR9Q)は私が最近読んだチュートリアルと少し異なりますが、同じ目的。 –

答えて

0

私はパッケージのタスクにアクセスし、それにプロパティを設定する方法を発見しました。

var task = (TaskHost)package.Executables["Your Package Name"]; 

task.Properties["Any Property"].SetValue(task, "Property Value"); 

とにかく皆さんのご意見ありがとうございます。

2

ASP.NET Webフォームアプリケーションでは、基本的に数年前にサーバーにデプロイされたSSISパッケージを実行したSQLエージェントジョブを作成し、エンタープライズライブラリ

public bool ExecutePackage(string jobName) 
    { 
     int result = -1; 
     bool success = false; 

     try 
     { 
      // "SsisConnectionString" will be the name of your DB connection string in your config 
      Database db = DatabaseFactory.CreateDatabase("SsisConnectionString"); 
      using (DbCommand dbCommand = db.GetStoredProcCommand("sp_start_job")) 
      { 
       db.DiscoverParameters(dbCommand); 
       db.SetParameterValue(dbCommand, "job_name", jobName); 
       db.SetParameterValue(dbCommand, "job_id", null); 
       db.SetParameterValue(dbCommand, "server_name", null); 
       db.SetParameterValue(dbCommand, "step_name", null); 
       db.ExecuteNonQuery(dbCommand); 
       result = Convert.ToInt32(db.GetParameterValue(dbCommand, "RETURN_VALUE")); 
      } 
     } 
     catch (Exception exception) 
     { 
      success = false; 
     } 

     switch (result) 
     { 
      case 0: 
       success = true; 
       break; 
      default: 
       success = false; 
       break; 
     } 

     return success; 
    } 

そして、あなたの設定で:

<connectionStrings> 
    <add name="SsisConnectionString" 
     connectionString="Data Source=<server>;Initial Catalog=MSDB;User Id=<user>;Password=<pwd>;" 
     providerName="System.Data.SqlClient"/> 
</connectionStrings> 
+0

これはどのようにして単一の仕事? –

2

私は、APIを使用して、パッケージを開く他のすべてのタスクを無効にして、あなたはダニエルがDTS APIを使用して、よりダイナミックに、以下の提案何達成できる最後の手段として

関連する問題