c#winform调用ssis包到底怎么弄

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#winform调用ssis包到底怎么弄相关的知识,希望对你有一定的参考价值。

调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能。思前想后,决定还是贴一下增强记忆,高手请54.
1、直接调用ssis包,需要引用Microsoft.SqlServer.DTSRuntimeWrap.dll,客户端需要安装MS SQL Server2005的客户端组件。
2、调用代码
代码
///

/// /通过SSIS包 将数据导入数据库
///
/// dtsx文件名
/// csv文件名
///
protected bool FillData2DB(string dtsxFileName, string csvFileName)

string dtsxFile = System.AppDomain.CurrentDomain.BaseDirectory + "DTSX\\" + dtsxFileName;

Microsoft.SqlServer.Dts.Runtime.Wrapper.Application app = new Microsoft.SqlServer.Dts.Runtime.Wrapper.Application();
//Call the dtsx file
IDTSPackage90 package = app.LoadPackage(dtsxFile, true, null); //另外还有一种方法叫LoadFromSQLServer
package.Connections["File"].ConnectionString = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, csvFileName);
package.Connections["本地连接"].ConnectionString = ConfigurationSettings.AppSettings["ConnStr"];
DTSExecResult result = package.Execute();
//获取包的执行信息
//string message = string.Empty;
//if (result.Equals(DTSExecResult.DTSER_FAILURE))
//
// for (int i = 0; i < package.Errors.Count; i++)
//
// message += package.Errors[i].Description;
//
//
//if (!string.IsNullOrEmpty(message))
//
// throw new Exception(message); //抛出异常
//
if (result.Equals(DTSExecResult.DTSER_SUCCESS))
return true;
else
return false;
参考技术A Form1 调用 Form2的代码,可以利用 委托进行实现,写了一个例子参考一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//主窗体
public partial class MainForm : Form

private Form1 form1 = null;
private Form2 form2 = null;
public MainForm()

InitializeComponent();
form1 = new Form1();

form2 = new Form2();
//传递 Form2 的 Fun1 方法 到 Form1 的委托
form1.Function = new Form1.FunctionDelegate(form2.Fun1);

private void btnForm1_Click(object sender, EventArgs e)

form1.Show();

private void btnForm2_Click(object sender, EventArgs e)

form2.Show();


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//Form1
public partial class Form1 : Form

//定义一个委托类型
//根据需要可以修改是否带参数和返回值
public delegate void FunctionDelegate(string text);
//些委托的值 由 Form2 函数 给出
public FunctionDelegate Function;
public Form1()

InitializeComponent();

private void btnStart_Click(object sender, EventArgs e)

//如果委托不为空时,进行调用
if (Function != null)
Function("Hello");



1
2
3
4
5
6
7
8
9
10
11
12
13
14
//Form2
public partial class Form2 : Form

public Form2()

InitializeComponent();

//定义一个由 Form1 调用的方法
//此方法的参数和返回值要和Form2的委托一致
public void Fun1(string text)

label1.Text = text;

C#winform怎么弄出类似于excel的表格?简单点的就好

参考技术A 用dataGridView控件。基本上显示效果可以和EXCEL相同。即使想做汇总,合并之类的都可以。 参考技术B 用DataGrid控件不就行了 参考技术C 最好还是用水晶报表哦。。这个效果很好。 参考技术D 王网上有现成的代码,,改改就能用的,,,,,,,,,,,

以上是关于c#winform调用ssis包到底怎么弄的主要内容,如果未能解决你的问题,请参考以下文章

C#winform怎么弄出类似于excel的表格?简单点的就好

跪求C语言函数调用的详细过程,函数之间是怎么传递的,到底是怎么发生调用的,最好是视频

c#winform怎么把控件背景设为半透明,像这样

谁会用C#winform中的Chart控件,教教我,急用,谢谢。

C#winform 我想弄一个初始化界面但是代码写好了并没有出现

关于c# winform 编程的,怎么弄提示类似“加载中”的小窗口