我正在尝试创建一个ASP.NET网站。我在那里使用数据库。要连接数据库,我使用的是我在web.config文件中存储的连接字符串,如
<connectionStrings>
<add name="DBConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=G:\CarRentalServices\App_Data\CarRentalServiceDB.mdf;Integrated Security=True"/>
</connectionStrings>
和代码背后的
private string _connectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
因此,您可以看到数据库存储在G:\path\to\db\CarRentalServiceDB.mdf
。
但是现在,如果我的朋友想从我这里拿走项目并尝试从他的机器上运行项目,那么他必须在connectionString
更改web.config
。假设网站现在位于朋友机器的D:\path\to\db\foo\CarRentalServiceDB.mdf
,那么connectionString需要更改。不是很乏味吗?
有没有办法用任何批处理文件或代码动态更改connectionString
,以便它会相对于它现在居住的当前目录进行更改?
答案 0 :(得分:2)
您应该使用|数据目录|令牌:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx
<connectionStrings>
<add name="DBConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\App_Data\CarRentalServiceDB.mdf;Integrated Security=True"/>
答案 1 :(得分:0)
您可以在web.config文件中添加多个连接字符串,然后调用所需的字符串
Web.config文件
<connectionStrings>
<add name="DBConnectionString"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=G:\CarRentalServices\App_Data\CarRentalServiceDB.mdf;Integrated Security=True"/>
<add name="DBConnectionStringTwo"
connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=D:\path\to\db\foo\CarRentalServiceDB.mdf;Integrated Security=True"/>
</connectionStrings>
连接字符串代码
//Connection String 1
private string _connectionString = ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString;
//Connection String 2
private string _connectionString2 = ConfigurationManager.ConnectionStrings["DBConnectionStringTwo"].ConnectionString;