Foreach控件使用
在SSIS中,Foreach控件可以循环处理选中的文件中的文件,例如sql文件,Excel文件等。下面就介绍一个比较经典的案例,将一个文件夹中包含的多个Excel文件循环导入至数据库中。
第一步:在数据库中创建一张测试表:
CREATE TABLE [dbo].[ShopInfo](
[ShopId] [varchar](255) NULL,
[ShopName] [varchar](255) NULL
) ON [PRIMARY]
第二步:创建两个测试用Excel文件,所包含信息如图:
第三步:新建一个SSIS项目,如图:
第四步:项目创建完毕以后,在控制流中拖入Foreach容器控件,然后双击控件(鼠标最好放在控件图标上),此时会弹出Foeach循环编辑器,先选集合选项,然后再选择Foreach枚举选择器,点击浏览,选中刚才创建的Excel的文件夹路径,最后修改文件的后缀名为xlsx。如下图所示:
第五步:选择变量映射,新建变量,变量名为:Num,容器选择当前的包容器,这里要注意一下,容器实际上指的是这个变量的作用范围,如果范围没有指定正确,这个变量是没有作用的,最后给一个默认值:0。如图所示:
第六步:在Foreach控件中,拖入一个数据流任务,然后双击这个任务,之后会进入数据流任务的工作界面,此时右侧会有一系列的控件,在数据流控件中找到Excel源,其意思就是说数据的来源是Excel,拖入Excel源控件之后,双击控件,进行数据源的设置。点击新建,再点浏览,选中之前准备好的Excel文件,任意选中一个即可。如图所示:
第七步:此时需要拖入一个数据转换控件,因为Excel中的字符中Uncoide,而我们刚才建立的表所包含的字段是varchar类型,如果不进行数据转换,数据是不会导入到数据库中,需要把数据转换成string。如图所示:
第八步:在数据流目标中,找到OLE DB数据源控件,拖入到工作界面,然后和数据转换控件进行连接,连接方式就是从数据转换控件点击一个绿色的箭头,连接到OLE DB数据源控件,连接之后,双击OLE DB数据源控件,进行目标源的设置,此时需要新建一个OLE DB连接管理器,其意思就是选择之前在第一步创建的ShopInfo所在数据库。连接管理器创建成功以后,再点击映射,此时控件已自动将需要映射的列映射好了,原因是因为我们之前进行的数据转换,所取的字段名和目标库中的表所包含的字段名是一样的。如图:
第十步:最关键的一步。右击Excel连接管理器,在弹出的对话框中,选中属性。在属性列表中找到Expresssions属性,在属性表达式编辑器中,在属性这一栏中,选择ExcelFilePath,在表达式这一栏中,选中之前我们建立的变量Num,然后点击确定。此时Excel报错了,这是正常的,因为改变了ExcelFilePath属性,我们只需要右击Excel数据源控件,找到属性ValidateExternalMedaData,默认为True,把它改为False,让Excel忽略这个错误,大功告成,如图所示:
第十一步:运行刚才建立的Package包即可。运行结果如下:
总结:在使用Foeach控件时,有两点需要注意,第一就是Foreach控件,变量映射,指定好变量,第二点,也是最重要的一点,就是修改Excel数据源的属性ValidateExternalMedaData为False,让控件忽略修改ExcelFilePath所带来的错误。
Foreach控件使用的更多相关文章
- foreach控件的运用(非原创)http://blog.chinaunix.net/uid-26884465-id-3416869.html
人们对从认识事物都有一个具体到抽象的过程,学习Jmeter也不例外,通过一个实例来进行学习,一方面可以让初学者有所见即所得的信心,另一方面,其实也是在初学者心中留下了对这事物的一个朦胧的印象,这在以后 ...
- 利用foreach对页面控件的遍历 及三目运算符的使用
1.利用foreach对页面控件的遍历 及三目运算符的使用 利用div将一组CheckBox放在一起用于遍历 <body> <form id="form1" ru ...
- CheckBox和控件Foreach循环
.aspx代码例如以下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sam ...
- JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动
JavaScript日历控件开发 概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...
- 【转载】foreach+Control.Controls无法一次性移除所有子控件解决方法
博客转载地址:http://www.mzwu.com/article.asp?id=2254 //在panel1中添加20个Button ; ; ; i <= ; i++) { ) row++; ...
- WinRT自定义控件第一 - 转盘按钮控件
之前的文章中,介绍了用WPF做一个转盘按钮控件,后来需要把这个控件移植到WinRT时,遇到了很大的问题,主要原因在于WPF和WinRT还是有很大不同的.这篇文章介绍了这个移植过程,由于2次实现的控件功 ...
- WPF自定义控件第二 - 转盘按钮控件
继之前那个控件,又做了一个原理差不多的控件.这个控件主要模仿百度贴吧WP版帖子浏览界面左下角那个弹出的按钮盘.希望对大家有帮助. 这个控件和之前的也差不多,为了不让大家白看,文章最后发干货. 由于这个 ...
- WPF自定义控件第一 - 进度条控件
本文主要针对WPF新手,高手可以直接忽略,更希望高手们能给出一些更好的实现思路. 前期一个小任务需要实现一个类似含步骤进度条的控件.虽然对于XAML的了解还不是足够深入,还是摸索着做了一个.这篇文章介 ...
- CSharpGL(26)在opengl中实现控件布局/渲染文字
CSharpGL(26)在opengl中实现控件布局/渲染文字 效果图 如图所示,可以将文字.坐标轴固定在窗口的一角. 下载 CSharpGL已在GitHub开源,欢迎对OpenGL有兴趣的同学加入( ...
随机推荐
- 多路复用I/O模型epoll() 模型 代码实现
epoll模型 int epoll_create(int maxevent) //创建一个epoll的句柄 然后maxevent表示监听的数目的大小int epoll_ctl(int epollfd, ...
- Centos6.9下安装OpenOffice 4.1.4
# 对一下时间,时间不准,解压不了yum install -y ntp unzipntpdate -u 202.112.10.36yum install libXext.x86_64 -yyum gr ...
- netcore 配置文件使用
一直在记录整理接口调用,但是最近发现关于项目在vs中本地启动也有许多方便的地方. 首先由于使用的是Java的Eureka和网关来做的服务基础, 然后服务就涉及到注册一说, 问题是,如果appsetti ...
- bzoj 1485 卡特兰数 + 分解因子
思路:打表可以看出是卡特兰数,但是模数不一定是素数,所以需要分解一下因数. #include<bits/stdc++.h> #define LL long long #define fi ...
- gitlab备份与恢复
(1)备份 1.创建备份目录,并授权 mkdir /data/backups/gitlab -pv chown -R git.git /data 2.修改gitlab配置 vim /etc/gitla ...
- CentOS7下Samba的安装与配置
一.Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享 ...
- selinux关闭
查看SELinux状态: 1./usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态 SELinux status: ...
- 最短路径-迪杰斯特拉(dijkstra)算法及优化详解
简介: dijkstra算法解决图论中源点到任意一点的最短路径. 算法思想: 算法特点: dijkstra算法解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径树.该算法常用于路由算 ...
- POJ 1845 Sumdiv (整数唯一分解定理)
题目链接 Sumdiv Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 25841 Accepted: 6382 Desc ...
- jquery 获取鼠标坐标
$("#x").text(event.pageX), $("#y").text(event.pageY);