入坑.!!!!!

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] 在脚本里面使用数据库连接字符串进行查询等处理, 入坑的更多相关文章

  1. .NET跨平台之旅:数据库连接字符串写法引发的问题

    最近在一个ASP.NET Core站点中遇到一个奇怪问题.当用dotnet run命令启动站点后,开始的一段时间请求执行速度超慢,有时要超过20秒,有时甚至超过1分钟,日志中会记录这样的错误: Sys ...

  2. EF--Codefirst 加密数据库连接字符串

    http://www.tuicool.com/articles/QvYbEn 一.EF,CodeFirst加密SQL连接符 public LifeHelpContext() : base(" ...

  3. C# 根据ADO.NET数据库连接字符串构建EntityFrame数据库连接字符串

    为了保持开发效率,以及保持代码优雅,项目中引用了EntityFrame.但是又因为某些报表功能需要大量计算,所以又要求直接使用ADO.NET,调用存储过程进行计算. 于是乎webconfig文件中就会 ...

  4. 【转】ASP.NET数据库连接字符串总结

    来源:http://blog.csdn.net/lutinghuan/article/details/5973897 ASP.NET数据库连接字符串总结 一.使用OleDbConnection对象连接 ...

  5. web.config connectionStrings 数据库连接字符串的解释

    先来看一下默认的连接SQL Server数据库配置<connectionStrings>   <add name="LocalSqlServer" connect ...

  6. 获取不到app.config里面的数据库连接字符串的解决方法

    今天在自己的类库里添加了对app.config文件的数据库连接字符串的引用,但是返回的居然是Null,纳闷了.然后在网上找到了答案原来是我的app.config文件加错了地方,应该加到启动项目里面,而 ...

  7. [转]ASP.NET数据库连接字符串总结

    这个不难,而且很重要,但总忘,找了篇比较全的,作为资料. 原文链接http://developer.51cto.com/art/201107/275406.htm 关于数据库链接字符串的相关知识,我们 ...

  8. Enterprise Library 中加密数据库连接字符串

    看了SHY520写的关于Data Access Application Block的文章,写得不错,忽略了一点就是如何去加密数据库连接字符串,这儿我简单的介绍一下.我们知道,在Enterprise L ...

  9. web config数据库连接字符串加密

    ASP.NET web.config中,数据库连接字符串的加密与解密 ASP.NET web.config中,数据库连接字符串的加密与解密. 开始--->运行,输入cmd,接着输入以下内容 加密 ...

随机推荐

  1. 小菜学习Winform(六)剪切板和拖放复制

    前言 在做winform项目的时候有时候会用到复制粘贴,在.net中提供了Clipboard类来操作剪切板,我们来看下. clipbrd.exe clipbrd是系统剪切板程序,但是在vista及以上 ...

  2. 走进vue.js(一)

    走进vue.js(一) vue.js作为目前最具前景的前端框架之一,既然如此,博主贯彻以往的作风,肯定要捣鼓一番,经过为期半个多月的研究,算是对vue有了深刻的理解与认识,下面分三个章节解开vue.j ...

  3. 实用的SQL语句

    行列互转 ) select * from test2 --列转行 select id,name,quarter,profile from test2 unpivot ( profile for qua ...

  4. [Java 基础]基础语法

    Java代码基本规范 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hello是不同的. 类名:对于所有的类来说,类名的首字母应该大写.如果类名由若干单词组成,那么每个单词的首字母应 ...

  5. OracleSugar ORM框架的诞生,代码开源

    经过四天的努力终于将SqlSugar ORM 成功支持ORACLE数据库 优点: 1.高性能,达到原生最高水准,比SqlHelper性能要高,比Dapper快30% 比EF快50% 2.支持多种数据库 ...

  6. serviceStack.Redis 在PooledRedisClientManager 中设置密码

    ServiceStack.Redis 是一个C#访问Redis的客户端,可以说可以通过它实现所有需要Redis-Cli的功能.但是今天我在主Redis 实例设置了访问密码,而在slave 上没有设置, ...

  7. SQL常见的系统存储过程

    1.sp_datebases 列出服务器上的所有数据库信息,包括数据库名称和数据库大小 例:exec sp_datebases 2.sp_helpdb 报告有关指定数据库或所有数据库的信息 例:exe ...

  8. VirtualBox动态添加虚拟硬盘

    本文非技术类文章,仅作为记录. 因为使用VirtualBox时遇到这样的问题:原本虚拟机分配存储的80G已经足够了,但是随着使用的文件越来越多,需要的空间也越来越大,因此不得不扩展虚拟机的磁盘容量. ...

  9. 微信JSApi支付~集成到MVC环境后的最后一个坑(网上没有这种解决方案)

    返回目录 大叔第一人 之前写了关于微信的坑<微信JSApi支付~坑和如何填坑>,今天将微信的jsapi支付封装到了MVC环境里,当然也出现了一些新的坑,如支付参数应该是Json对象而不是J ...

  10. 获取form对象

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...