c#直接调用ssis包实现Sql Server的数据导入功能-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

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, truenull); //另外还有一种方法叫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,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章
最新文章
相关文章