进行连接字符串引用而不是硬编码

时间:2015-01-08 19:54:04

标签: c# sql visual-studio-2012

目前,我的应用程序的连接字符串是硬编码的。

string connectionString2 = "Data Source=SWDB10DSQL;Initial Catalog=BillingUI;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";

我正在尝试更改它,因此我引用了web.config文件中定义的连接字符串。我已经尝试了下面找到的解决方案,但它不起作用(数据不再插入我的表中)。然而它编译。<​​/ p>

ImportController.cs

string connectionString2 =    System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BillingUIEntities"].ConnectionString; 

using (SqlConnection _con2 = new SqlConnection(connectionString2))
{
  _con2.Open();

的Web.config

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />

<add name="BillingUIEntities" connectionString="metadata=res://*/Models.Model2.csdl|res://*/Models.Model2.ssdl|res://*/Models.Model2.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=SWDB10DSQL;initial catalog=BillingUI;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" /></connectionStrings>

更新:我已经确定它正在从Web.config获取连接字符串,但它包含了linq / my sql连接在控制器中似乎不需要的元数据。我认为子字符串可能是一个解决方法,但我不认为这是一个很好的方法,因为元数据可以更改,导致更长/更短的长度字符串,这将导致我子串连接字符串的无效区域。有一个更好的方法吗?

1 个答案:

答案 0 :(得分:0)

使用ConfigurationManager而不是WebConfgurationManager。

string connectionString2 = System.Configuration.ConfigurationManager.ConnectionStrings["BillingUIEntities"].ConnectionString;

:)大卫