问题
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.
回答1:
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
}
回答2:
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.
来源:https://stackoverflow.com/questions/3444801/setting-connection-string-in-dbml-files-using-linq-to-sql-in-visual-studio-2008