在运行时设置数据库连接字符串
本文关键字:字符串 数据库连接 设置 运行时 | 更新日期: 2023-09-27 18:31:14
我正在开发一个MVC 4网站。它应该允许用户根据用户从视图中的选择选择要连接的数据库。所有数据库都具有相同的表结构和架构等。
我在 Web.config 文件中定义了一个数据库 ConnectionString,它允许连接到第一个数据库。
<connectionStrings>
<add name="DBConnectionString" connectionString="Data Source=DATABSE_SERVER;Initial Catalog=DATABASE_NAME;Persist Security Info=True;User ID=USERNAME;Password=PASSWORD" providerName="System.Data.SqlClient" />
</connectionStrings>
我还使用 Linq DataContext 来初始化与数据库的连接。表映射都是由 Linq 在 MVC 4 中自动生成的。
public NEMP_DataDataContext() :
base(global::System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionString"].ConnectionString, mappingSource)
{
OnCreated();
}
实现这一目标的最佳方法是什么?
在 LINQ to SQL 中,只需使用连接字符串创建上下文:
DataContext myContext = new DataContext(customConnectionString);
您无需担心关闭它们或任何东西。 SQL Server正在为您处理所有这些。 因此,您只需稍微调整连接字符串(数据库名称),并根据每个页面中需要使用上下文的任何变量创建新上下文。
您可以使用
ChangeDatabase
方法SqlConnection
请参阅MSDN。
-
首先,您应该有一个存储来获取所有数据库连接。也许存储是 xml 文件或简单的数据库。但需要实现如何获取连接字符串。
-
如果你在你的应用程序中对你的数据conext使用了EntityFramework。你可以有一个像下面的代码这样的构造函数:
public ApplicationDbContext(string nameOfConnection) : base(nameOfConnection) { this.Configuration.ProxyCreationEnabled = true; this.Configuration.LazyLoadingEnabled = true; }
-
请调用 1 并获取名称 OfConneciton,然后调用 2 来初始化 DbContext。
我不确定我是否完全理解你的问题。但我假设您问我们您希望让用户选择要连接到的数据库。然后设置连接字符串。
这是我的解决方案,例如,如果您有 5 个数据库供用户选择。将这 5 个连接字符串写入 web.config。然后制作一个下拉列表或单选按钮,让用户选择数据库。然后做一个if语句。例如,如果选择了第一个单选按钮,则
String connection string=connection.string["the name of connection string in web.confug"];
我希望这对你有所帮助