2011-06-22 21 views
2

winformsでSSISパッケージを実行する必要があります。winformsでSSISパッケージを実行

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using System.Deployment; 
using Microsoft.SqlServer.Dts.Runtime; 
using Microsoft.SqlServer.Dts.Runtime.Wrapper; 
using System.Net.Mime; 
public string sPackage = String.Empty; 
     public string sConfig = String.Empty; 
     private void Form1_Load(object sender, EventArgs e) 
     { 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog fDialog = new OpenFileDialog(); 
      fDialog.Title = "Open Package"; 
      fDialog.Filter = "SSIS Package (*.dts, *.dtsx)|*.dts;*.dtsx"; 
      fDialog.InitialDirectory = @"C:\"; 
      sPackage = fDialog.FileName.ToString(); 
     } 
     private void button2_Click(object sender, EventArgs e) 
     { 
      OpenFileDialog fDialog = new OpenFileDialog(); 
      fDialog.Title = "Open Package"; 
      fDialog.Filter = "SSIS Package (*.dts, *.dtsx)|*.dts;*.dtsx"; 
      fDialog.InitialDirectory = @"C:\"; 
      sConfig = fDialog.FileName.ToString(); 
     } 

     private void button3_Click(object sender, EventArgs e) 
     { 
      Microsoft.SqlServer.Dts.Runtime.Wrapper.Application app = new Microsoft.SqlServer.Dts.Runtime.Wrapper.Application(); 
      Package package = app.LoadPackage(sPackage,false,null); 
      package.ImportConfigurationFile(sConfig); 
      DTSExecResult result = package.Execute(); 
      MessageBox.Show(result.ToString()); 
     } 

しかし、これは、LoadPackage(sPackage、偽、ヌル)で私にエラーを与えている

暗黙的Microsoft.SqlServer.Dts」にタイプ 'Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSPackage90' を変換できません。 。Runtime.Wrapper.Package '。明示的な変換は、(あなたがキャストが欠けている?)

答えて

1

存在する私はをbutton3_Click私はSSISパッケージの設定ファイルを見つけるか、この

private void button3_Click(object sender, EventArgs e) 
     { 
      MyEventListener eventListener = new MyEventListener();    
      Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application(); 
      Microsoft.SqlServer.Dts.Runtime.Package pkg = app.LoadPackage(sPackage, eventListener,false); 
      Microsoft.SqlServer.Dts.Runtime.DTSExecResult pkgResults = pkg.Execute(null, null, eventListener, null, null); 
      MessageBox.Show(pkgResults.ToString()); 
     } 

     class MyEventListener : DefaultEvents 
     { 
      public override bool OnError(DtsObject source, int errorCode, string subComponent, 
       string description, string helpFile, int helpContext, string idofInterfaceWithError) 
      { 
       // Add application-specific diagnostics here. 
       MessageBox.Show("Error in " + "/t" + source + "/t" + subComponent + "/t" + description); 
       return false; 
      } 
     } 
+0

のように扱われるべきであることを考え出しましたか? –

関連する問題