我在vs 2015中使用集成服务项目创建了SSIS包。
使用Datasource我的连接建立成功。我可以使用Execute Package Utility和Command line执行包,这是成功的。
请检查下面的屏幕截图。
我在使用c#执行相同的包时遇到问题。 执行包失败。
我已应用eventlistener,低于错误。
请在下面找到几个截图以获取更多信息。
参考代码:
Application app = new Application();
Package pkg = app.LoadPackage(@"C:\Project\Sample\Package1.dtsx", listener);
DTSExecResult results = pkg.Execute(null, null, listener, null, null);
在结果对象中,我因给定错误而失败。
答案 0 :(得分:1)
正如@Tab Alleman所说,您可以通过从启动SQL Agent JOB的C#调用存储过程sp_start_job
来运行该包。
在创建SQL Agent JOB之后,这里有一段可以帮助这种方法的代码:
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();
}
}
我希望这有帮助。
答案 1 :(得分:0)
不幸的是,您的输出未显示确切的错误消息。我在过去直接从C#执行包时遇到了问题。
解决此问题的一种方法是创建执行包的SQL代理作业,然后从启动SQL代理作业的C#调用存储过程。