Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6867507
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 27, 20262026-05-27T03:19:05+00:00 2026-05-27T03:19:05+00:00

I want to get a ConnectionString from an instance of SqlConnectionStringBuilder as a String

  • 0

I want to get a ConnectionString from an instance of SqlConnectionStringBuilder as a String.

This seems simple, and should be as easy as this:

String conString = builder.ConnectionString;

However the String that SqlConnectionStringBuilder gives up doesn’t include the Password field/value. I’m guessing this is some sort of security feature, is there a way to force Password to be included in the String?


Looking at this further I’m thinking this may have something to do with ConnectionManager. What I am trying to do is modify the ConnectionString for a Package, changing the Initial Catalog.

Below is my code, the point that builder‘s connection string is passed back into connectionManager‘s the Password is lost…

    public void DataTransfer(String sourceConnection, String destConnection, String pkgLocation)
    {     
        Package pkg;
        Application app;
        DTSExecResult pkgResults;

        try
        {
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);

            foreach (ConnectionManager connectionManager in pkg.Connections)
            {
                SqlConnectionStringBuilder builder;
                switch (connectionManager.Name)
                {
                    case "SourceConnection":
                        builder = new SqlConnectionStringBuilder(sourceConnection) { PersistSecurityInfo = true };
                        builder.Remove("Initial Catalog");
                        builder.Add("Initial Catalog", "StagingArea");
                        connectionManager.ConnectionString = builder.ConnectionString.ToString();
                        connectionManager.ConnectionString += ";Provider=SQLNCLI;Auto Translate=false;";
                        Debug.WriteLine(connectionManager.ConnectionString.ToString());
                        break;
                    case "DestinationConnection":
                        builder = new SqlConnectionStringBuilder(sourceConnection) { PersistSecurityInfo = true };
                        builder.Remove("Initial Catalog");
                        builder.Add("Initial Catalog", "StagingArea");
                        connectionManager.ConnectionString = builder.ConnectionString.ToString();
                        connectionManager.ConnectionString += ";Provider=SQLNCLI;Auto Translate=false;";
                        Debug.WriteLine(connectionManager.ConnectionString.ToString());
                        break;
                }
            }
            pkgResults = pkg.Execute();
        }
        catch (Exception e)
        {

            throw;
        }
        Console.WriteLine(pkgResults.ToString());
    }
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-27T03:19:06+00:00Added an answer on May 27, 2026 at 3:19 am

    I need to rename this a little maybe, as the question is different now, but here is my solution:

    The first part of this question was answered correctly by @madd0. The ConnectionString does contain the Password field.


    The second part was solved with formatting code is below:

    public void DataTransfer(String sourceConnection, String destConnection, String pkgLocation)
    {     
        Package pkg;
        Application app;
        DTSExecResult pkgResults;
    
        try
        {
            app = new Application();
            pkg = app.LoadPackage(pkgLocation, null);
    
            foreach (ConnectionManager connectionManager in pkg.Connections)
            {
                SqlConnectionStringBuilder builder;
                switch (connectionManager.Name)
                {
                    case "SourceConnection":
                        builder = new SqlConnectionStringBuilder(sourceConnection) { PersistSecurityInfo = true };
                        builder.Remove("Initial Catalog");
                        builder.Add("Initial Catalog", "StagingArea");
                        var sourceCon = builder.ConnectionString + ";Provider=SQLNCLI;Auto Translate=false;";
                        //Added spaces to retain password!!!
                        sourceCon = sourceCon.Replace(";", "; ");
                        connectionManager.ConnectionString = sourceCon;
                        Debug.WriteLine(connectionManager.ConnectionString.ToString());
                        break;
                    case "DestinationConnection":
                        builder = new SqlConnectionStringBuilder(sourceConnection) { PersistSecurityInfo = true };
                        builder.Remove("Initial Catalog");
                        builder.Add("Initial Catalog", "StagingArea");
                        var destCon = builder.ConnectionString + ";Provider=SQLNCLI;Auto Translate=false;";
                        //Added spaces to retain password!!!
                        destCon = destCon.Replace(";", "; ");
                        connectionManager.ConnectionString = destCon;
                        Debug.WriteLine(connectionManager.ConnectionString.ToString());
                        break;
                }
            }
            pkgResults = pkg.Execute();
        }
        catch (Exception e)
        {
    
            throw;
        }
        Console.WriteLine(pkgResults.ToString());
    }
    

    I played about with the ConnectionStrings and noticed after a while that the original String had spaces between each property.

    Running 2 tests I found that without spaces the Password was lost…

    connectionManager.ConnectionString = destCon;
    

    Test 1: No Spaces:

    When destCon = Data Source=xxx.xxx.xxx.xxx;Initial Catalog=StagingArea;User ID=*****;Password=*****;Provider=SQLNCLI;Auto Translate=false;

    Then connectionManager.ConnectionString = Data Source=xxx.xxx.xxx.xxx;User ID=*****;Initial Catalog=StagingArea;Provider=SQLNCLI;Auto Translate=false;

    Test 2: Spaces:

    When destCon = Data Source=xxx.xxx.xxx.xxx; Initial Catalog=StagingArea; User ID=*****; Password=*****; Provider=SQLNCLI; Auto Translate=false;

    Then connectionManager.ConnectionString = Data Source=xxx.xxx.xxx.xxx; Initial Catalog=StagingArea; User ID=*****; Password=*****; Provider=SQLNCLI; Auto Translate=false;

    No idea why this happens, but without spaces the ordering is adjusted and the Password field is lost.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to get a connection string from the app.config file. connectionString = System.Configuration.ConfigurationSettings.AppSettings["DBEntities"];
I want to get the MD5 Hash of a string value in SQL Server
I really want to get this out of my head. Please see below code:
I'm struggling a bit with this. I want to get the list of ids
I want get the time used for a case so I can create an
I want get all of the Geom objects that are related to a certain
I want to get started doing some game development using Microsoft's XNA. Part of
I want to get my databases under version control. I'll always want to have
I want to get an overview of files that are updated in TFS (that
I want to get the base 10 logarithm of a Fixnum using Ruby, but

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.