c#直接调用ssis包实现Sql Server的数据导入功能

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

ExpandedBlockStart.gif
复制代码
         ///   <summary>
        
///  /通过SSIS包 将数据导入数据库
        
///   </summary>
        
///   <param name="dtsxFileName"> dtsx文件名 </param>
        
///   <param name="csvFileName"> csv文件名 </param>
        
///   <returns></returns>
         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 ;

        }
复制代码

 需要的配置节如下:

代码

 注意:方法中需要用到dtsx模板和csv文件,csv文件的简单生成可以参考这一篇,而dtsx模板制作是重中之中,自己菜鸟一枚,没有发言权,您可以参考网上资源。
最后,弱弱地问一下,这个算不算传说中的抄袭剽窃啊?非原创,非原创......默念一百遍,







本文转自JeffWong博客园博客,原文链接:http://www.cnblogs.com/jeffwongishandsome/archive/2009/12/17/1543052.html,如需转载请自行联系原作者

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值