Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 您可以从.net运行SSIS任务吗?_C#_.net_Sql Server_Ssis_Sql Server Agent - Fatal编程技术网

C# 您可以从.net运行SSIS任务吗?

C# 您可以从.net运行SSIS任务吗?,c#,.net,sql-server,ssis,sql-server-agent,C#,.net,Sql Server,Ssis,Sql Server Agent,我已经安排了运行SSIS包的sql代理任务。我希望能够从.net运行SSIS包。有没有一种方法可以直接运行SSIS包,或者至少运行SQL代理任务,而SQL代理任务又将运行SSIS包 如果有帮助的话,那就是用C编写的.NET3.5Web应用程序# 谢谢 是的。查看Microsoft.SqlServer.Dts.Runtimenamespace。Package类将提供运行它的方法。可用于运行SSIS包的选项包括- 使用SSIS对象模型以编程方式运行包。这在网上书籍中有详细讨论 例如: using

我已经安排了运行SSIS包的sql代理任务。我希望能够从.net运行SSIS包。有没有一种方法可以直接运行SSIS包,或者至少运行SQL代理任务,而SQL代理任务又将运行SSIS包

如果有帮助的话,那就是用C编写的.NET3.5Web应用程序#


谢谢

是的。查看
Microsoft.SqlServer.Dts.Runtime
namespace。Package类将提供运行它的方法。

可用于运行SSIS包的选项包括-

  • 使用SSIS对象模型以编程方式运行包。这在网上书籍中有详细讨论
例如:

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace RunFromClientAppCS
{
    class Program
    {
        static void Main(string[] args)
        {
            string pkgLocation;
            Package pkg;
            Application app;
            DTSExecResult pkgResults;

            pkgLocation = "<package path>\CalculatedColumns.dtsx";
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);
            pkgResults = pkg.Execute();

            Console.WriteLine(pkgResults.ToString());
            Console.ReadKey();
        }
    }
}
使用系统;
使用Microsoft.SqlServer.Dts.Runtime;
命名空间RunFromClientAppCS
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串拼写;
包装;
应用程序;
DTSECRESULT pkgResults;
pkgLocation=“\CalculatedColumns.dtsx”;
app=新应用程序();
pkg=app.LoadPackage(pkgLocation,null);
pkgResults=pkg.Execute();
Console.WriteLine(pkgResults.ToString());
Console.ReadKey();
}
}
}
  • 启动DTEXEC.EXE进程。DTEXEC是用于执行SSIS包的命令行实用程序。请参见其命令行选项

  • 使用SQL代理。您可以将代理作业配置为运行包(如果包是静态的,请提前手动执行,或者在运行包之前使用SMO或SQL存储过程以编程方式执行),然后使用SMO或sp_start_作业以编程方式启动它

  • 使用其他实用程序为您启动DTEXEC

  • 创建一个将运行包的自定义应用程序(如方法1所述使用OM,或如方法2所述使用DTEXEC)。将其公开为web服务或DCOM类,从程序中调用此服务

  • 发明你自己的:)


参考:

Im使用您的Winform解决方案。我在下面得到了红色的曲线:
应用程序
app=newapplication()
pkg=app.LoadPackage(pkgLocation,null)
;除了以下例外:
Error 4'Application'是'System.Windows.Forms.Application'和'Microsoft.SqlServer.Dts.Runtime.Application'之间的不明确引用
Error 6'System.Windows.Forms.Application'类型没有定义构造函数
-我需要为Winform更改什么?