C#调用SSIS包及读取DataReader目标
C#调用SSIS包需要引用两个DLL 。(具体位置在C盘搜索,MSDN和百度提供的路径都不太正确)
Microsoft.SQLServer.ManagedDTS.dll
Microsoft.SqlServer.Dts.DtsClient.dll
这是MSDN上的例子 https://msdn.microsoft.com/zh-cn/library/ms136025%28v=sql.120%29.aspx
MSDN上的例子只有读取一个DataReader的做法,并且该方法不能加事件。
下面是读取多个DataReader的代码
string pkgLocation = @"Package1.dtsx"; //包路径
DtsConnection dtsConnection;
DtsCommand dtsCommand;
IDataReader dtsDataReader = null;
Package pkg;
Application app;
DataSet ds = new DataSet();
app = new Application();
pkg = app.LoadPackage(pkgLocation, null); string dataReaderName = "DataReaderDest"; dtsConnection = new DtsConnection();
{
dtsConnection.m_pkg = pkg;
// dtsConnection.ConnectionString = string.Format(@"/FILE ""{0}""",pkgLocation); //另一种连接方式。如果用Package则可以加事件
// dtsConnection.Open();
} dtsCommand = new DtsCommand(dtsConnection);
dtsCommand.CommandText = dataReaderName; List<string> reader = new List<string>() {"DataReaderDest", "DataReaderDest2"}; //DataReader输出名称 集合 List<IDataReader> readers = new List<IDataReader>();
foreach (var cmdtext in reader)
{
dtsCommand.CommandText = cmdtext;
dtsDataReader = dtsCommand.ExecuteReader(CommandBehavior.Default);
readers.Add(dtsDataReader);
Console.WriteLine("读取{0}", cmdtext);
} foreach (var dataReader in readers)
{
try
{
DataTable dt = new DataTable();
dt.Load(dataReader);
Console.WriteLine("数据行{0}", dt.Rows.Count);
ds.Tables.Add(dt);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
finally
{
dataReader.Close();
}
} dtsCommand.Dispose();
return ds;
上面的代码能读取1个以上DataReader但是读取第一个后需要等待30秒才能读取第二个,会在下面的代码卡着
dtsDataReader = dtsCommand.ExecuteReader(CommandBehavior.SingleResult);
原因是包中DataReader的ReadTimeout默认为30000毫秒 设为100毫秒就好了。每一个DataReader都要设置。
C#调用SSIS包及读取DataReader目标的更多相关文章
- c#直接调用ssis包实现Sql Server的数据导入功能
调用ssis包实现Sql Server的数据导入功能网上已经有很多人讨论过,自己参考后也动手实现了一下,上一次笔者的项目中还用了一下这个功能.思前想后,决定还是贴一下增强记忆,高手请54. 1.直接调 ...
- 在SQL Server中使用命令调用SSIS包
在SQL Server中可以使用dtexec命令运行SSIS包(2005以上版本),当然也可以通过系统过程:xp_cmdshell调用dtexec运行SSIS包. 具体操作步骤如下: 1.首先,当然是 ...
- c# 代码调用ssis包
https://docs.microsoft.com/en-us/sql/integration-services/run-manage-packages-programmatically/loadi ...
- [转]SSIS包的调用方式
本文转自:http://www.cnblogs.com/lijun4017/archive/2008/12/04/1347701.html 编写简单SSIS包光看MSDN应该就问题不大了,最近几天几个 ...
- c#控制台調用SSIS包互传值
有时候不仅仅需要在内部执行package包,多数情况下,是需要在外部进行调用,比如,需要一个批处理或者控制台程序进行外部调用SSIS包,而往往这个包所配置的连接字符串是经过加密处理的,所以当外部调用S ...
- 效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中【附源代码下载】) 转
效率最高的Excel数据导入---(c#调用SSIS Package将数据库数据导入到Excel文件中[附源代码下载]) 本文目录: (一)背景 (二)数据库数据导入到Excel的方法比较 ...
- java 从jar包中读取资源文件
在代码中读取一些资源文件(比如图片,音乐,文本等等),在集成环境(Eclipse)中运行的时候没有问题.但当打包成一个可执行的jar包(将资源文件一并打包)以后,这些资源文件找不到,如下代码: Jav ...
- (转)java 从jar包中读取资源文件
(转)java 从jar包中读取资源文件 博客分类: java 源自:http://blog.csdn.net/b_h_l/article/details/7767829 在代码中读取一些资源文件 ...
- 一步一步部署SSIS包图解教程
本文就SQL统计分析SSIS包的部署进行一次详细的部署图解教程,Sql Server Integration Services 提供了非常简单的部署工具,利用这些工具可以方便地将包文件(*.dtsx) ...
随机推荐
- WPF RichTextBox 控件常用方法和属性
以下内容转自 http://blog.csdn.net/yulongguiziyao/article/details/25330551. 1. 取得已被选中的内容: (1)使用 RichTextBox ...
- Codeforces Round #340 (Div. 2) A. Elephant 水题
A. Elephant 题目连接: http://www.codeforces.com/contest/617/problem/A Descriptionww.co An elephant decid ...
- Codeforces Round #339 (Div. 2) A. Link/Cut Tree 水题
A. Link/Cut Tree 题目连接: http://www.codeforces.com/contest/614/problem/A Description Programmer Rostis ...
- .net中怎么使用CKEditor
1:官网下载Full Package2:将此ckeditor文件包拷贝到项目根目录下3:CKEditor 3.6.6.2 for ASP.NET下载4:复制_Samples\bin\Release\C ...
- Html Agility Pack基础类介绍及运用
第一篇只对Html Agility Pack做了一个大概的介绍,在接下来的章节会比较深入的介绍Html Agility Pack. Html Agility Pack 源码中的类大概有28个左右,其实 ...
- pthread_mutex_t
在Linux中使用线程 http://blog.csdn.net/jiajun2001/article/details/12624923 :LINUX就是这个范围作者 原创作品,允许转载,转载时 ...
- 算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
出处 http://segmentfault.com/blog/exploring/ 本章讲解:1. LCS(最长公共子序列)O(n^2)的时间复杂度,O(n^2)的空间复杂度:2. 与之类似但不同的 ...
- Docker大行其道—镜像
导读 作为Docker三大核心概念之一,Docker镜像(Docker Image)是一个面向Docker引擎的只读模板,包含文件系统.实际上每个Docker镜像包含一个独立的运行环境,如一个镜像包含 ...
- 3.3html学习笔记之链接
iframe 元素会创建包含另外一个文档的内联框架 <iframe src=""/> 跳转链接 <a href="#here" target= ...
- NSNotificationCenter 使用姿势详解
来源:JamesYu 链接:http://www.jianshu.com/p/a4d519e4e0d5 最近在做平板的过程中,发现了一些很不规范的代码.偶然修复支付bug的时候,看到其他项目代码,使用 ...