C# Web.config中的动态连接字符串出错

C# Web.config中的动态连接字符串出错,c#,asp.net,web-config,C#,Asp.net,Web Config,我想根据登录时下拉列表的值更改web.config中的初始目录,其他内容将保持不变,如用户id、数据源、密码等 这对我来说很好,但我们都知道,connectionstring中的“name”属性不能相同。因此,我将根据每个connectionString更改attribe的名称 但主要的问题是,我在类中的每个页面中都定义了连接,如下所示 SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationMa

我想根据登录时下拉列表的值更改web.config中的初始目录,其他内容将保持不变,如用户id、数据源、密码等

这对我来说很好,但我们都知道,connectionstring中的“name”属性不能相同。因此,我将根据每个connectionString更改attribe的名称

但主要的问题是,我在类中的每个页面中都定义了连接,如下所示

SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings["connect"].ConnectionString);
因此,根据web.config中的connectionstring,“name”属性应该是动态的。所以我尝试在每个页面中使用Session变量来代替“name”属性,如下所示

SqlConnection cn = new SqlConnection(System.Web.Configuration.WebConfigurationManager.ConnectionStrings[Session["ConnectionName"]].ConnectionString);

但不幸的是,课程在课堂上不起作用。那么解决方案是什么呢?

在这种情况下,您可以拥有一个主数据库,根据您的约束条件(如年份等)维护项目的所有连接/核心部分

现在可以从主数据库中提取连接字符串。 有许多其他场景可以实现这一点,但根据您的需求,创建主数据库是一种更好的方法


希望这对您有所帮助。

我已经在类中的每个页面中定义了连接。为什么不为此创建一个单独的数据访问层呢。您好@SuprabhatBiswal,谢谢您的回复。我没有太多的经验。我当前的方案有什么解决方案吗?您当前的项目中有多少个
初始目录
?没有限制。实际上,用户将根据fin创建财政年度。年项目将创建数据库,然后将根据新数据库创建一个新的连接字符串。在这种情况下,请检查这些参考资料,希望这对您有所帮助