C# ASP.NET 通用权限管理系统组件的数据访问层的调用方法参考2 - 多种类型的多数据库连接方法
2013-02-03 10:44 通用C#系统架构 阅读(780) 评论(0) 编辑 收藏 举报往往一个网站需要同时连接多个数据库,例如 用户中心库、消息库、业务库、审批流程库、论坛等等n多数据库,而且很可能还是多种类型的数据库,所以我们需要有一个灵活的数据库访问组件。下面我们看看通用权限管理系统组件里的数据库访问连接库的用法,例子代码是连接4个数据库的实际例子。
//-------------------------------------------------------------------- // All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd. //-------------------------------------------------------------------- using System; using System.Data; namespace DotNet.WebForm.Example { using DotNet.Utilities; /// <remarks> /// MultiDatabase /// /// 修改纪录 /// /// 版本:1.0 2013.02.03 JiRiGaLa 创建。 /// /// 版本:1.0 /// <author> /// <name>JiRiGaLa</name> /// <date>2013.02.03</date> /// </author> /// </remarks> public partial class MultiDatabase : System.Web.UI.Page { /// <summary> /// 同时多数据库连接的方法。 /// /// 优点: /// 同时可以连接多个数据库 /// </summary> private void UseMultiDatabase() { // 当然这个数据库连接也可以从配置文件获取,这里是简单的例子,直接写入数据库连接串了 // 用户中心的数据库连接 BaseSystemInfo.UserCenterDbConnection = "Data Source=localhost;Initial Catalog=UserCenterV37;User Id = sa ; Password = Password@sa;max pool size=50;min pool size=10"; // 业务数据库连接 BaseSystemInfo.BusinessDbConnection = "Data Source=localhost;Initial Catalog=ProjectV37;User Id = sa ; Password = Password@sa;max pool size=50;min pool size=10"; // 审批流程数据库连接 BaseSystemInfo.WorkFlowDbConnection = "Data Source=localhost;Initial Catalog=WorkFlowV37;User Id = sa ; Password = Password@sa;max pool size=50;min pool size=10"; // 消息中心数据库连接 BaseSystemInfo.MessageDbConnection = "Data Source=localhost;Initial Catalog=MessageCenterV37;User Id = sa ; Password = Password@sa;max pool size=50;min pool size=10"; // 用户中心的数据库连接 IDataReader dataReader1 = DbHelper.ExecuteReader(BaseSystemInfo.UserCenterDbConnection, "SELECT Id FROM BaseUser"); while (dataReader1.Read()) { } dataReader1.Close(); DbHelper.ExecuteNonQuery(BaseSystemInfo.UserCenterDbConnection, "SELECT COUNT(1) FROM BaseUser"); DbHelper.Fill(BaseSystemInfo.UserCenterDbConnection, "SELECT Id FROM BaseUser"); DbHelper.ExecuteScalar(BaseSystemInfo.UserCenterDbConnection, "SELECT COUNT(1) FROM BaseUser"); // 业务数据库连接 IDataReader dataReader2 = DbHelper.ExecuteReader(BaseSystemInfo.BusinessDbConnection, "SELECT Id FROM Project"); while (dataReader2.Read()) { } dataReader2.Close(); DbHelper.ExecuteNonQuery(BaseSystemInfo.BusinessDbConnection, "SELECT COUNT(1) FROM Project"); DbHelper.Fill(BaseSystemInfo.BusinessDbConnection, "SELECT Id FROM Project"); DbHelper.ExecuteScalar(BaseSystemInfo.BusinessDbConnection, "SELECT COUNT(1) FROM Project"); // 审批流程数据库连接 IDataReader dataReader3 = DbHelper.ExecuteReader(BaseSystemInfo.WorkFlowDbConnection, "SELECT Id FROM BaseWorkFlowProcess"); while (dataReader3.Read()) { } dataReader3.Close(); DbHelper.ExecuteNonQuery(BaseSystemInfo.WorkFlowDbConnection, "SELECT COUNT(1) FROM BaseWorkFlowProcess"); DbHelper.Fill(BaseSystemInfo.WorkFlowDbConnection, "SELECT Id FROM BaseWorkFlowProcess"); DbHelper.ExecuteScalar(BaseSystemInfo.WorkFlowDbConnection, "SELECT COUNT(1) FROM BaseWorkFlowProcess"); // 消息中心数据库连接 IDataReader dataReader4 = DbHelper.ExecuteReader(BaseSystemInfo.MessageDbConnection, "SELECT Id FROM BaseMessage"); while (dataReader4.Read()) { } dataReader4.Close(); DbHelper.ExecuteNonQuery(BaseSystemInfo.MessageDbConnection, "SELECT COUNT(1) FROM BaseMessage"); DbHelper.Fill(BaseSystemInfo.MessageDbConnection, "SELECT Id FROM BaseMessage"); DbHelper.ExecuteScalar(BaseSystemInfo.MessageDbConnection, "SELECT COUNT(1) FROM BaseMessage"); } protected void Page_Load(object sender, EventArgs e) { // 调用多个数据库连接 UseMultiDatabase(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2009-02-03 3年前的一个小项目经验,分享给菜鸟兄弟们(公文收发小软件:小技能 SmallDatetime)
2009-02-03 3年前的一个小项目经验,分享给菜鸟兄弟们(公文收发小软件:小技能 DeleteMark)