SqlConnection数据源,在不同的PC上工作时需要更改

时间:2013-09-05 18:24:28

标签: c# asp.net

我正在使用以下代码

SqlConnection con = new SqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\mr\\Desktop\\ment Final\\ment Final\\App_Data\\LoginStuff.mdf;Integrated Security=True;User Instance=True");

因此,每次在新PC上运行项目时,我都必须一次又一次地更改所有数据源。有什么可以避免的吗?

3 个答案:

答案 0 :(得分:4)

而是使用连接字符串和web.config来简化更改。

web.config示例:

<configuration>
    <connectionStrings>
        <add name="LoginDB" connectionString="Data Source=.\\SQLEXPRESS;AttachDbFilename=C:\\Users\\mr\\Desktop\\ment Final\\ment Final\\App_Data\\LoginStuff.mdf;Integrated Security=True;User Instance=True" />
    </connectionStrings>
</configuration>

将您的代码更改为:

SqlConnection con = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["LoginDB"].ConnectionString);

您可能已经在项目的根目录中有了一个web.config,您可以简单地添加此connectionStrings部分,或者只是在该部分已存在的情况下添加此新连接字符串!

答案 1 :(得分:0)

使用配置文件。可以在项目的根目录中找到ASP.NET中的web.config和类和Windows项目中的app.config

<connectionString>
 <add 
     name="connStr" 
     connectionstring="Server=myServerAddress;
                       Database=myDataBase;
                       Trusted_Connection=True;"
 </connectionString>

在cs

SqlConnection conn = new SqlConnection();
conn.ConnectionString = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;

答案 2 :(得分:0)

要重申Amit和Subterfuge上面所说的内容,您的连接字符串应存储在配置文件中而不是代码中。这些方法不会解决您仍然需要在每台机器上修改连接字符串的问题。相反,我建议您为本地开发创建约定,并在开发/登台/生产环境之间使用配置转换。

地方发展大会 如果您将数据库放在每台计算机上的相同位置,那么最容易在本地针对您的代码进行开发。 .NET约定是在项目的根文件夹中使用app_data folder。如果将数据库放在正在开发的每台计算机上的此文件夹中,则无需更改连接字符串。

例如,将LoginStuff.mdf复制到项目的/ app_data文件夹中(如果该文件夹不存在,则创建该文件夹)。将您的连接字符串更改为:

<connectionString>
    <add name="loginStuff" connectionstring="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|LoginStuff.mdf;User Instance=true"
</connectionString>

然后在代码中,您可以通过向System.Configuration添加using然后引用连接字符串来引用它:

var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["loginStuff"].ConnectionString);

环境之间 在环境(调试,发布等)之间,您可以使用configuration transforms自动修改web.config。对于每个环境,您需要在项目的根目录中创建Web。{environment} .config文件。使用XML转换指定修改配置文件的方式。

这些应涵盖您最常见的两种情况。干杯!

相关问题