如:
ConnectionManager sourceDatabaseConnectionManager;
sourceDatabaseConnectionManager = package.Connections.Add("OLEDB");
sourceDatabaseConnectionManager.ConnectionString = "Data Source=snake\\SQLEXPRESS;Initial Catalog=db1;User Id=sa;Pwd=111111;Provider=SQLNCLI;Auto Translate=false;";
结果sourceDatabaseConnectionManager.ConnectionString的值总是会变成"Data Source=snake\\SQLEXPRESS;User Id=sa;Initial Catalog=db1;Provider=SQLNCLI;Auto Translate=false;"

解决方案 »

  1.   

    值总是会变成,当然要变了,密码是写在 web.config 里面的,你在前台也能打印出来那不是很危险,这是保密的一种方式,不用担心连不上数据库,ConnectionString 是专门处理过的如果你确实想要前台得到这个密码可以在config里面另外多定义一个值存放密码
      

  2.   

    我没有要在前台打印阿,而且这是一个集成服务的winform程序,我只是发现在程序中只能用windows身份登录,若是用sql server验证方式的话就抱错。跟踪调试的时候才发现sourceDatabaseConnectionManager.ConnectionString的值里面没有密码
      

  3.   

    这个就是这样,无论怎么写它都过滤掉。但是过滤掉并不说明密码没有被保存。在包属性中有一项:ProtectionLevel,设定包的密码保护方式。常用的是前2个选择:第一个是不进行密码保护,第二个是进行隐私保护。默认的是选第二项,你可以根据需要修改。