views:

64

answers:

4

I have C# .net project with SQL Server 2008 written in Visual Studio 2008. There I used the following connection string to connect with SQL Server:

string connectionString = 
    @"server=HASIBPC\SQLEXPRESS; Integrated Security=SSPI; 
      database=XPHotelManagementDatabase";

But problem is every time I take my application from one computer to another computer I need to change the server in connectionString. I don't want to change this manually. I want this will change dynamically. How will I do that using app.config?

+3  A: 

If the database is local with the application you can use LocalHost in your connection string assuming all other information is the same.

Eg:

string connectionString = @"server = LOCALHOST\SQLEXPRESS; Integrated Security = SSPI; database = XPHotelManagementDatabase";
Kelsey
FYI, I believe you can also use `.\SQLEXPRESS`
John Saunders
+1  A: 

You don't have to use app config to store a connection string - you could just pass a dynamically generated connection string to the SqlConnection constructor.

Adam Butler
+1  A: 

Here is a sample;

Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\PressbyranDB.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True

Note that Data Source=.\SQLEXPRESS; attribute as your SQL Server and Server Instance name. Also, you do not need to restore your database from machine to machine if you use the AttachDbFilename= attribute.

Kosala Nuwan
A: 

Aside from LOCALHOST and "." You can

  1. use "server = 127.0.0.1\SQLEXPRESS"

  2. Add an alias to the SQL Server Configuration Manger and use that in your string

  3. add 127.0.0.1 foo to your hostsfle and use it e.g. "server = FOO\SQLExpress"

  4. Mange the connection in the machine config

Conrad Frix