入坑.!!!!!

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. Redis碎碎念

    1. 关于Cluster cluster_known_nodes:4 cluster_size:3 说明集群中总共有4个节点:集群的size是3,相当于3个主节点参与了槽位分配 2. 如何查看key的 ...

  2. weight属性你用的真的6嘛?

    相信大家在日常开发中一定使用过weight这个属性,它的作用一个是权重,另一个就是渲染优先级,但是你真的能很6的使用它嘛?如果不是,那么请继续往下看!!! 我们知道,当weight起到不同作用的时候, ...

  3. Xen之初体验:HA(额外附加)

    高可用性,虽说不是在这个版本就开始免费的,但是连续的体验一下会更加完整些. Figure 9在资源池的位置上右击选择High Availability,进入到配置HA的窗口中 Figure 10在资源 ...

  4. 【Java】 环境变量如何配置?

    Java知识简介与环境变量配置问题 一.在学习一门语言中,不仅需要掌握其语法结构,开发平台以及环境也是很重要的.在开始Java学习之前首先对其进行压缩包的下载安装,以及开发平台环境下载安装.基于此下面 ...

  5. 1Z0-053 争议题目解析46

    1Z0-053 争议题目解析46 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 46.What happens when you run the SQL Tuning Adviso ...

  6. 【集合框架】JDK1.8源码分析之ArrayList(六)

    一.前言 分析了Map中主要的类之后,下面我们来分析Collection下面几种常见的类,如ArrayList.LinkedList.HashSet.TreeSet等.下面通过JDK源码来一起分析Ar ...

  7. .NET中使用NLog记录日志

    以前小编记录日志使用的是Log4Net,虽然好用但和NLog比起来稍显复杂.下面小编就和大伙分享一下NLog的使用方式. 引用NLog.Config 在使用NLog之前,我们要首先添加对NLog.Co ...

  8. Chrome开发者工具详解(5)-Application、Security、Audits面板

    Chrome开发者工具详解(5)-Application.Security.Audits面板 这篇文章是Chrome开发者工具详解这一系列的最后一篇,介绍DevTools最后的三个面板功能-Appli ...

  9. pushState、replaceState、onpopstate 实现Ajax页面的前进后退刷新

    使用Ajax可以异步获取数据,可以更高效地渲染页面. 但也存在这一些问题: 再刷新页面,页面就会变成初始的状态 浏览器的前进后退功能无效 对搜索引擎的爬虫抓取不友好 1. 早前会使用浏览器的 hash ...

  10. Composer根据Name显示与隐藏

    //主要设置 模型的显示与隐藏 private void TransmissionByData_AxSendSelectionChange(string domName, bool isVisible ...