简体   繁体   中英

Setting Connection string in dbml files using Linq to SQL in Visual Studio 2008

I have an application that works with a database "TestDB". At the time I was developing the application I was using linq to sql and adding my data tables by dragging and dropping to the TestDB.dbml file and probably .net automatically sets the connection string to the local sql server on my machine. The application is supposed to launch on some windows based instruments. and the database will be local in those instruments.

Now, how can I change the connection string to make sure that the local database inside the instrument will be targeted for my application?

Also, I added username and password to my database so it will not be windows Authentication connection and my guess is that username and password should be part of the connection string.

When you create your DataContext in your code you will pass in the ConnectionString. So you can store that in a config file and then using ConfigurationManager grab the ConnectionString and use it to create your DataContext like so:

public class SomeService
    {
        private SomeDataContext _db = null;

        public SomeService() 
        {
            _db = new SomeDataContext(ConfigurationManager.ConnectionStrings["SomeSqlServer"].ConnectionString);
        }

        public SomeService(string connectionString)
        {
            _db = new SomeDataContext(connectionString);
        }

        public SomeDataContext DB
        {
            get
            {
                return _db;
            }
        }

        // whatever methods you want to use that access this DataContext
}

If you set Data Source = localhost in the connection string, it should always reference the local machine and will save you from having to set it individually for each machine running the app.

Edit: Just as an FYI, check out http://connectionstrings.com/ , it's quite handy.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM