Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多个数据库和单个网站使用数据库覆盖连接字符串_C#_Asp.net_Sql Server_Database - Fatal编程技术网

C# 多个数据库和单个网站使用数据库覆盖连接字符串

C# 多个数据库和单个网站使用数据库覆盖连接字符串,c#,asp.net,sql-server,database,C#,Asp.net,Sql Server,Database,我有多租户Web应用程序。我想发布一个网站,其中支持多个数据库连接字符串保存在数据库中 例如: 登录用户-A-->连接到数据库-A 登录用户-B-->连接到数据库-B 主数据库保存用户和连接字符串 但我的问题是,当用户A登录到应用程序时,它会正常工作(使用DB-A),一旦用户B登录,它将如何覆盖连接字符串。然后两个用户都显示DB-B数据 你能帮忙吗 谢谢您可以使用会话根据用户类型分配连接字符串。用户注销时,关闭会话。这将阻止覆盖值。糟糕的体系结构。对于100个用户,您有100个数据库?-当你更新

我有多租户Web应用程序。我想发布一个网站,其中支持多个数据库连接字符串保存在数据库中

例如:

登录用户-A-->连接到数据库-A 登录用户-B-->连接到数据库-B

主数据库保存用户和连接字符串

但我的问题是,当用户A登录到应用程序时,它会正常工作(使用DB-A),一旦用户B登录,它将如何覆盖连接字符串。然后两个用户都显示DB-B数据

你能帮忙吗


谢谢

您可以使用会话根据用户类型分配连接字符串。用户注销时,关闭会话。这将阻止覆盖值。

糟糕的体系结构。对于100个用户,您有100个数据库?-当你更新程序(和数据库)时,你将如何使100个数据库在没有bug和错误的情况下更新?我们不会经常更新数据库。。但程序可以是,或者你们有更好的解决方案?为什么不使用设计模式呢?在应用程序启动时,检查哪个用户已登录并使用该用户连接字符串。您也可以在app.config文件中添加连接字符串。感谢Dheeraj回复我打开和关闭连接所需的每个查询/或数据库命中的方法。这会影响性能吗?不,不应该。我开发了一个项目,在每个页面中打开和关闭连接的次数为n次。确保它在最后关闭。