最近利用asp.net+c#做一个公司的在途库管理项目,已接近尾声。项目中涉及到6个数据库,这个项目集团公司做的,集团公司下设好几个分公司,每个分公司都有独立运营的数据库服务器,而且不在一起,但这个项目是个B/S的架构,要求所有分公司必须在同一平台上操作,每个人登录时,选择数据源,比如A公司,进入后只能对A公司的数据进行操作。其它公司的人员登录页一样,必须选择合适的数据源。这无疑增加了一定的难度。
如何配置和管理这些数据库连接?后经思考,还是很好的解决了这些问题:
首先在web.config文件中配置这些数据库连接(比如四个公司的数据库连接)
<appSettings>
<add key="ConnectionString" value="Data Source=(local);Database=data;Uid=sa;PWD=123" />
<add key="ConnectionString1" value="Data Source=192.168.1.1;Database=data1;Uid=sa;PWD=123" />
<add key="ConnectionString2" value="Data Source=192.168.1.2;Database=data2;Uid=sa;PWD=123" />
<add key="ConnectionString3" value="Data Source=192.168.1.3;Database=data3;Uid=sa;PWD=123" />
</appSettings>
登录时,利用session记录下所选的公司数据源
数据库连接语句:
SqlConnection sqlconn=null;
if(Session["data"]=="01")
sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);
else if(Session["data"]=="02")
sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString1"]);
else if(Session["data"]=="03")
sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString2"]);
else if(Session["data"]=="04")
sqlconn = new SqlConnection(ConfigurationManager.AppSettings["ConnectionString3"]);