使用c#执行包SSIS失败

使用c#执行包SSIS失败

问题描述:

我在vs 2015中使用集成服务项目创建了SSIS包。 使用数据源连接建立成功。我可以使用执行包实用程序和命令行成功执行包。 请检查下面的屏幕截图。 Execute package successfully 我在使用c#执行相同的包时遇到问题。 无法执行包。 我应用了eventlistener,得到了以下错误。 请在下面的几张截图中找到更多信息。 Error on execute using c# code使用c#执行包SSIS失败

代码以供参考:

Application app = new Application(); 
Package pkg = app.LoadPackage(@"C:\Project\Sample\Package1.dtsx", listener); 
DTSExecResult results = pkg.Execute(null, null, listener, null, null); 

在结果反对我买了给定的错误失败。

+0

基本上你在做什么“数据流任务”?如果包在BIDS中运行,包是否成功运行? –

+0

我是SSIS的新手,我的要求是通过SSIS从Hadoop中获取数据,我成功地在UI上显示数据并使用c#执行某些操作。我可以在Visual Studio中使用集成服务项目预览我的数据。并能够运行也。但是一旦创建了dtsx文件并且我在pkg.execute行上发生了错误。 Actaully我不知道什么是数据流任务错误 – Pratik

正如@Tab Alleman所说,您可以通过调用启动SQL Agent JOB的C#中的存储过程sp_start_job运行该程序包。

下面的一段代码,可以是帮助在这种类型的方法,创建SQL代理作业后:

SqlConnection Conn = new SqlConnection(YOURCONNECTION); 

SqlCommand ExecuteJob = new SqlCommand(); 
ExecuteJob.CommandType = CommandType.StoredProcedure; 
ExecuteJob.CommandText = "msdb.dbo.sp_start_job"; 
ExecuteJob.Parameters.AddWithValue("@job_name", YOURJOBNAME") 
ExecuteJob.Connection = Conn; 

using (Conn) 
{ 
    Conn.Open(); 

    using (ExecuteJob) 
    { 
     ExecuteJob.ExecuteNonQuery(); 
    } 
} 

我希望这帮助。

+0

感谢您的这项工作。暂时它会工作。但将来我已经解决了这个问题。如果你有任何解决方案,请让我知道。 非常感谢 – Pratik

不幸的是,您的输出不显示确切的错误信息。我以前在C#中直接执行包时遇到了问题。

解决此问题的一个方法是创建一个SQL代理作业,执行该程序包,然后从启动SQL代理作业的C#调用存储过程。