[SSIS] 在脚本里面使用数据库连接字符串进行查询等处理, 入坑
入坑.!!!!!
SSIS 中dts包 设置的 ADO.Net连接, 在传入脚本的时候, 我要使用 数据库连接,进行数据的删除操作.
于是我使用了 了如下的 代码
使用的是windows 身份验证, 发布到正式环境上的时候, 不能使用windows验证, 而要使用 账号密码登录, 结果我改完账号密码登陆以后,
里面调用的地方, connection.open 的时候就报错了, 说登录失败. 我看了看了一下连接字符串, 没有密码部分.
这个 是 微软设置的dts 包或者项目 的安全性, 连接字符串的密码部分 不是对外公布的明文. 所以这样子去拿连接字符串,是拿不到的.
现在提供以下解决方案
先设两个变量, 然后 直接拿到 Connection
IDTSConnectionManager100 connMgr;
SqlConnection sqlConn;
public override void AcquireConnections(object Transaction)
{ //获取 以及设置 Connection 连接
connMgr = this.Connections.DestConnStr;
sqlConn = (SqlConnection)connMgr.AcquireConnection(Transaction);
}
public override void ReleaseConnections()
{
connMgr.ReleaseConnection(sqlConn);
}
public int ExecuteNonQuery(string sqlStr, CommandType cType, SqlParameter[] parms)
{
;
try
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlConn; //直接使用 数据连接
cmd.CommandType = cType;
cmd.CommandText = sqlStr;
if (parms != null)
{
cmd.Parameters.AddRange(parms);
}
result = cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
result = ;
throw ex;
}
return result;
}
最后别忘了 Despose
public override void PostExecute()
{
base.PostExecute();
/*
* Add your code here
*/
if (sqlConn != null)
sqlConn.Dispose();
}
补充一下, 在dts 包 脚本组件 输入输出项的时候, 新增的输出列,插入到目标列, 如果脚本里面不对 输出列进行赋值, 输出列是会有默认值的
datetime 的默认值 为 0000-00-00
字符串 默认 为 空字符串( 而不是null)
然后要使 数据库的目标插入的时候 是 null,要对 输入输入列进行 赋值,
例如:
Row.synctime_IsNull = true;
补充2: 在执行存储过程, 使用 datetime 类型的参数, 传入到oledb , 因为设置的类型 为 datetime , 所以有默认值,
这或许是一个bug, 这个值不会发生改变, 就算外面发生了改变, 传入到存储过程里面, 也还是原来的初始值.
解决这个问题的方案是: 将字段类型甚至为 string,而不是datetime , 然后 变量设置为 字符串表达式
比如 更新的时候去系统运行的当前时间 , 使用系统时间, 字符串函数去转换一下

SSSI里面的坑真多啊
[SSIS] 在脚本里面使用数据库连接字符串进行查询等处理, 入坑的更多相关文章
- .NET跨平台之旅:数据库连接字符串写法引发的问题
最近在一个ASP.NET Core站点中遇到一个奇怪问题.当用dotnet run命令启动站点后,开始的一段时间请求执行速度超慢,有时要超过20秒,有时甚至超过1分钟,日志中会记录这样的错误: Sys ...
- EF--Codefirst 加密数据库连接字符串
http://www.tuicool.com/articles/QvYbEn 一.EF,CodeFirst加密SQL连接符 public LifeHelpContext() : base(" ...
- C# 根据ADO.NET数据库连接字符串构建EntityFrame数据库连接字符串
为了保持开发效率,以及保持代码优雅,项目中引用了EntityFrame.但是又因为某些报表功能需要大量计算,所以又要求直接使用ADO.NET,调用存储过程进行计算. 于是乎webconfig文件中就会 ...
- 【转】ASP.NET数据库连接字符串总结
来源:http://blog.csdn.net/lutinghuan/article/details/5973897 ASP.NET数据库连接字符串总结 一.使用OleDbConnection对象连接 ...
- web.config connectionStrings 数据库连接字符串的解释
先来看一下默认的连接SQL Server数据库配置<connectionStrings> <add name="LocalSqlServer" connect ...
- 获取不到app.config里面的数据库连接字符串的解决方法
今天在自己的类库里添加了对app.config文件的数据库连接字符串的引用,但是返回的居然是Null,纳闷了.然后在网上找到了答案原来是我的app.config文件加错了地方,应该加到启动项目里面,而 ...
- [转]ASP.NET数据库连接字符串总结
这个不难,而且很重要,但总忘,找了篇比较全的,作为资料. 原文链接http://developer.51cto.com/art/201107/275406.htm 关于数据库链接字符串的相关知识,我们 ...
- Enterprise Library 中加密数据库连接字符串
看了SHY520写的关于Data Access Application Block的文章,写得不错,忽略了一点就是如何去加密数据库连接字符串,这儿我简单的介绍一下.我们知道,在Enterprise L ...
- web config数据库连接字符串加密
ASP.NET web.config中,数据库连接字符串的加密与解密 ASP.NET web.config中,数据库连接字符串的加密与解密. 开始--->运行,输入cmd,接着输入以下内容 加密 ...
随机推荐
- 小菜学习Winform(六)剪切板和拖放复制
前言 在做winform项目的时候有时候会用到复制粘贴,在.net中提供了Clipboard类来操作剪切板,我们来看下. clipbrd.exe clipbrd是系统剪切板程序,但是在vista及以上 ...
- 走进vue.js(一)
走进vue.js(一) vue.js作为目前最具前景的前端框架之一,既然如此,博主贯彻以往的作风,肯定要捣鼓一番,经过为期半个多月的研究,算是对vue有了深刻的理解与认识,下面分三个章节解开vue.j ...
- 实用的SQL语句
行列互转 ) select * from test2 --列转行 select id,name,quarter,profile from test2 unpivot ( profile for qua ...
- [Java 基础]基础语法
Java代码基本规范 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个单词的首字母应 ...
- OracleSugar ORM框架的诞生,代码开源
经过四天的努力终于将SqlSugar ORM 成功支持ORACLE数据库 优点: 1.高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30% 比EF快50% 2.支持多种数据库 ...
- serviceStack.Redis 在PooledRedisClientManager 中设置密码
ServiceStack.Redis 是一个C#访问Redis的客户端,可以说可以通过它实现所有需要Redis-Cli的功能.但是今天我在主Redis 实例设置了访问密码,而在slave 上没有设置, ...
- SQL常见的系统存储过程
1.sp_datebases 列出服务器上的所有数据库信息,包括数据库名称和数据库大小 例:exec sp_datebases 2.sp_helpdb 报告有关指定数据库或所有数据库的信息 例:exe ...
- VirtualBox动态添加虚拟硬盘
本文非技术类文章,仅作为记录. 因为使用VirtualBox时遇到这样的问题:原本虚拟机分配存储的80G已经足够了,但是随着使用的文件越来越多,需要的空间也越来越大,因此不得不扩展虚拟机的磁盘容量. ...
- 微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)
返回目录 大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是J ...
- 获取form对象
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...