Winforms调试/发布生产/ dev连接字符串app.config

时间:2014-10-04 17:22:36

标签: c# .net visual-studio deployment connection-string

发布Winforms application时,我总是忘记更改连接字符串。

我正在使用EF6.net framework 4.5

App.config

<connectionStrings>
<add name="NarudzbeEntities" connectionString="metadata=res://*/NarudzbeModel.csdl|res://*/NarudzbeModel.ssdl|res://*/NarudzbeModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=192.168.1.XX;initial catalog=Narudzbe;persist security info=True;user id=USER;password=PASSWORD;MultipleActiveResultSets=True;App=EntityFramework&quot;"
  providerName="System.Data.EntityClient" />
<add name="Narudzbe.Properties.Settings.NarudzbeConnectionString"
  connectionString="Data Source=192.168.1.XX;Initial Catalog=Narudzbe;Persist Security Info=True;User ID=USER;Password=PASSWORD"
  providerName="System.Data.SqlClient" />
</connectionStrings>

我怎么能在app.config中有两个连接字符串,或者这样做的正确方法。

ASP.NET web.config有很多文章,但我需要winforms解决方案。

2 个答案:

答案 0 :(得分:0)

你可以在app config中执行类似的操作。Using the ConnectionStrings section of the configuration file链接有很好的信息可供使用。

<configuration>
<connectionStrings>
    <clear/>
    <add name="Dev"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=machine\sq; Initial Catalog=DevDB; Integrated Security=SSPI"
/>
    <add name="QA"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=machine\sql; Initial Catalog=QADB; Integrated Security=SSPI"
/>
    <add name="Prod"
         providerName="System.Data.SqlClient"
         connectionString="Data Source=machine\sql; Initial Catalog=ProdDB; Integrated Security=SSPI"
/>
</connectionStrings>

答案 1 :(得分:0)

如果您使用EF,则必须在app config中使用与Context类同名的连接字符串。当我尝试通过Context类的基础构造函数传递连接字符串名称时,我遇到了问题。因此,在发布应用时,只需在app config中注释连接字符串。