权限管理、用户权限系统、开源用户权限系统、信息化建设标准基础数据管理平台
代码改变世界

C# ASP.NET 通用权限管理系统组件的数据访问层的调用方法参考2 - 多种类型的多数据库连接方法

  通用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();
        }
    }
}
复制代码

 

编辑推荐:
· 开发者必知的日志记录最佳实践
· 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)


C# ASP.NET 通用权限设计、通用权限管理、通用权限组件、单点登录、集中式权限管理、统一授权体系、分级管理分级授权


微信扫一扫加好友



点击右上角即可分享
微信分享提示