SSIS

摘要:SSIS - 使用 C# 调用 SSIS Package 的三种方式


这阵子忽然间想来读读 SSIS 这门技术,在 SQL 2005 时我来不及参与,只好在 SQL 2008 的时候进门学习,当然少不了要买本胡百敬老师的书来加快入门的速度。在书中的第二章就用SSIS产生一个文字档,但心急的我就开始想,在 C# 中应该怎么去调用使用呢!? 以下就来用范列来做说明

环境:
1.SQL SERVER 2008
2.SSIS
3.数据库:AdventureWorks
4.完成使用 SSIS 将数据表数据导出文字档的Package
5.建立一个 WinForm 的项目

情境一:使用 LoadPackage 来调用 Package

Code:
private void btnExec_Click(object sender, EventArgs e)
{
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Package package = null;           

try
{
 //指定绝对路径给 LoadPackage
 package = app.LoadPackage(@"D:My ProjectPro_SSIS_Sample_1Pro_SSIS_Sample_1Package.dtsx", null);
 Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
 MessageBox.Show("执行 SSIS 状态:" + results.ToString());
}
catch (Exception ex)
{
 throw ex;
}
finally
{
 package.Dispose();
 package = null;
}
}

情境二:使用 LoadFromDtsServer 来调用 Package

步骤一:开启 SSIS 后,选择“存放的封装File System”,并且新增一个名为“MySSIS”的数据夹




步骤二:导入 dtsx





步骤三:撰写程序

Code:

private void btnExec_Click(object sender, EventArgs e)
{
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Package package = null;           

try
{
 package = app.LoadFromDtsServer("File System\MySSIS\MySSIS_01", "HP-PC", null);
 Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
 MessageBox.Show("执行 SSIS 状态:" + results.ToString());
}
catch (Exception ex)
{
 throw ex;
}
finally
{
 package.Dispose();
 package = null;
}
}

情境三:使用 LoadFromSqlServer 来调用 Package

步骤一:开启 SSIS 后,选择“存放的封装MSDB”,并且对“Data Collector”按右键选“导入封装”




步骤二:撰写程序

Code:

private void btnExec_Click(object sender, EventArgs e)
{
Microsoft.SqlServer.Dts.Runtime.Application app = new Microsoft.SqlServer.Dts.Runtime.Application();
Package package = null;           

try
{
 package = app.LoadFromSqlServer(@"Data CollectorMySSIS_01", "HP-PC\DANNYDB", "sa", "[email protected]", null);
 Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = package.Execute();
 MessageBox.Show("执行 SSIS 状态:" + results.ToString());
}
catch (Exception ex)
{
 throw ex;
}
finally
{
 package.Dispose();
 package = null;
}
}

参考:
c#执行SSIS包的方法2
Avviare un package di SSIS da un'applicazione ASP.NET
DbConnectionStringBuilder Class