user1872014
user1872014

Reputation: 17

Dynamic sql connection string

I am using my SQL connection in my mvc4 application as follows:

 public static string ConnectionString=@"Data Source=LocalDB)\v11.0;AttachDbFilename=C:\Users\..\Documents\Visual Studio 2012\Projects\..\..\App_Data\RoDB.mdf;Integrated Security=True";

I want to rewrite it as dynamically.

When I change the system, I don't want to change the connection string.

Upvotes: 1

Views: 2153

Answers (4)

Sean Airey
Sean Airey

Reputation: 6372

You can put connection strings in your web.config file, this means it is out of application code and doesn't require a re-build to change.

<configuration>
    <!-- Other config settings -->
    <connectionStrings>
        <add name="localDBConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\..\Documents\Visual Studio 2012\Projects\..\..\App_Data\RoDB.mdf;Integrated Security=True" />
    </connectionStrings>
</configuration>

Then to use this in your application you can put the following in compiled code:

string myConnectionString = ConfigurationManager.ConnectionStrings["localDBConnection"].ConnectionString;

Upvotes: 1

Taj
Taj

Reputation: 1728

add a app configuration file in you application and add setting inside it

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="ConnectionString" value="Data Source=LocalDB)\v11.0;AttachDbFilename=C:\Users\..\Documents\Visual Studio 2012\Projects\..\..\App_Data\RoDB.mdf;Integrated Security=True"/>
  </appSettings>
</configuration>

in your code you can write

string ConnectionString= System.Configuration.ConfigurationManager.AppSettings["ConnectionString"].ToString();

Upvotes: 0

Rohan B&#252;chner
Rohan B&#252;chner

Reputation: 5393

Whats wrong with using a web config? its pretty much standard practice I'd assume? Also read up on using the relative path. EG. Relative to application location

Upvotes: 0

garvit gupta
garvit gupta

Reputation: 303

If you use ".\SQLExpress" as server name it will connect to the local instance. In that case you don't need to change your connection string on different machines.

Upvotes: 2

Related Questions