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

代码

        /// <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;

}

需要的配置节如下:

代码

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="ConnStr" value="Data Source=10.10.**.***;User ID=adminTest;Password=***;Initial Catalog=TestDb;Provider=SQLNCLI.1;Persist Security Info=True;"/>
  </appSettings>
</configuration>

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

转载于:https://www.cnblogs.com/jeffwongishandsome/archive/2009/12/17/1543052.html

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

  1. sql server 2008数据导入Oracle方法

    试了几种sql server数据导入Oracle的方法,发现还是sql server 的导入导出工具最好使.使用方法很简单,照着向导做就可以.不过使用中需要注意以下几点: 系统盘需要足够大.因为SSI ...

  2. SQL Server的数据导入MySQL数据库方法简介

    第一种是安装mysql ODBC,利用sql server的导出功能,选择mysql数据源,进行数据的直接导出,这种方法很简便,但是针对实际应用有很多弊端,最主要体现就是数据类型问题,首先,sql s ...

  3. SQL SERVER 2005数据导入导出报“错误 0xc00470fe 数据流任务 产品级别对于 组件“源 - TestDB01$”(1) 而言不足”

    由于本次接到的任务是从其他服务器导入数据到我们的服务器上,由于数据库,表字段不一样所以我们的服务器上建了一些中间表.我想把服务器上中间表中的数据导入到自己机子来做测试. 思路一:登录服务器导出数据,却 ...

  4. sqlserver2000换成mysql_将SQL Server 2000数据导入到MySQL 5.5的方法

    一.安装MySQL 5.5(可以与SQL Server不在同一台服务器上),并新建一个空的数据库(一般用utf-8编码),用于接收导入的数据. 二.在SQL Server的服务器上安装mysql-co ...

  5. Sql Server数据库数据导入到SQLite数据库中

    背景:Sql Serve数据库中有个表格A,想把数据导入到SQLite数据库中 工具下载地址:点击打开链接 用法: 原作者地址及下载地址:点击打开链接

  6. 使用SSIS包导入SQL Server FILESTREAM数据

    初始配置 (Initial configuration) We have been exploring the SQL Server FILESTREAM feature in this ongoin ...

  7. C#中调用SSIS包的问题

    我用c#调用SSIS包来更新cube数据时总是提示如下错误: The package failed to load due to error 0xC0011008 "Error loadin ...

  8. C#调用SSIS包(DTS)

    首先,有两种调用方式:直接用(需要引用Microsoft.SqlServer.DTSRuntimeWrap.dll), 通过Web Service进行执行SSIS包. 如果是直接调用那么需要引用Mic ...

  9. C#调用SSIS包及读取DataReader目标

    C#调用SSIS包需要引用两个DLL .(具体位置在C盘搜索,MSDN和百度提供的路径都不太正确) Microsoft.SQLServer.ManagedDTS.dll Microsoft.SqlSe ...

最新文章

  1. 相机成像与校正原理:将外部世界进行降维
  2. python导入txt文件并绘图-Python读取txt某几列绘图的方法
  3. 关于卡巴斯基安全免疫区随笔
  4. 五十八、如何对一个数进行分解质因数
  5. C++容器的选择和详细操作方法总结(有自己总结)
  6. POJ3020深度解析(二分图--最小路径覆盖)
  7. 为什么应该避免JSF
  8. VMware + Ubuntu16.04 网络无法使用问题
  9. 完美电脑主机一拖二,让你夫妻不再抢电脑,一台主机两人独立玩
  10. 数字金额转化大写金额函数
  11. fx5800p编程教程_fx5800P编程计算器操作方法.pdf
  12. FreeBase介绍
  13. 综合布线系统 (布线系统的一种)
  14. mac软件推荐(适用m1)
  15. 使用Origin画出复杂网络博弈中合作率时间演化图(学术论文)
  16. Java高级程序设计课程设计报告
  17. 大数据可视化——在组件中使用翻牌器
  18. 爬取今日头条上的图片
  19. simrank算法 java_SimRank算法入门
  20. 在 if...elif...else 的多个语句块中只会执行一个语句块?_如果 (If) | Python 中的条件控制语句详解...

热门文章

  1. Xiki:一个开发人员寻求增强命令行界面的能力
  2. node mysql 批量写入_请问如何使用node.js在MySQL中进行批量插入
  3. ssh mysql环境搭建 myeclipse_MyEclipse整合ssh三大框架环境搭载用户注册源码下载
  4. python的turtle绘图体系入门必看(二)
  5. 【Python培训基础知识】Python生成器函数
  6. koa+mongoose基础入门
  7. Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书)
  8. BZOJ 3420: Poi2013 Triumphal arch
  9. jQuery简单实现iframe的高度根据页面内容自适应的方法(转)
  10. 动态表单构建器——建造者模式