ITPub博客

首页 > Linux操作系统 > Linux操作系统 > c#直接调用ssis包实现Sql Server的数据导入功能

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

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-12-18 13:22:08 0 删除 编辑

调用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;

        }
 需要的配置节如下:

代码


 
   
 


 注意:方法中需要用到dtsx模板和csv文件,csv文件的简单生成可以参考这一篇,而dtsx模板制作是重中之中,自己菜鸟一枚,没有发言权,您可以参考网上资源。

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-622790/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5766206