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

本文关键字:编码 引用 连接 字符串 | 更新日期: 2023-09-27 18:36:52

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

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

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

导入控制器.cs

string connectionString2 =    System.Web.Configuration.WebConfigurationManager.ConnectionStrings["BillingUIEntities"].ConnectionString; 
using (SqlConnection _con2 = new SqlConnection(connectionString2))
{
  _con2.Open();

网络.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/我的 sql 连接似乎不需要在控制器中的元数据。我认为子字符串可能是一种解决方法,但我认为这不是一个好方法,因为元数据可能会更改,从而导致更长/更短的字符串长度,这将导致我子字符串连接字符串的无效区域。有没有更好的方法可以做到这一点?

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

使用 ConfigurationManager 而不是 WebConfgurationManager。

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

:)大卫