.net操作mssql

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Threading;using System.Data.Common;using System.Data;using S
摘要由CSDN通过智能技术生成
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Data.Common;
using System.Data;
using System.Data.SqlClient;

namespace DBTest
{
    /// <summary>
    /// DB链接基类
    /// </summary>
    public abstract class DbConnectionBase
    {
        public DbConnectionBase() { }
        /// <summary>
        /// 数据库链接字符串
        /// </summary>
        protected string m_dbConnStr;
        /// <summary>
        /// 错误代码
        /// </summary>
        protected string m_errMsg;
        /// <summary>
        /// 设置数据库链接信息
        /// </summary>
        /// <param name="connStr"></param>
        public void SetConnectionString(string connStr)
        {
            this.m_dbConnStr = connStr;
        }
        /// <summary>
        /// 获取错误信息
        /// </summary>
        /// <returns></returns>
        public string GetErrMsg()
        {
            return m_errMsg;
        }
        public abstract bool IsOpen();
        / <summary>
        / 判断连接是否打开
        / </summary>
        / <returns></returns>
        //public bool IsOpen()
        //{
        //    return m_bOpen;
        //}
        /// <summary>
        /// 打开数据库链接
        /// </summary>
        public abstract void Open();
        /// <summary>
        ///关闭数据库链接
        /// </summary>
        public abstract void Close();
    }
    public class MSSqlConnection:DbConnectionBase
    {
        private SqlConnection m_mssqlConn;
       
        public MSSqlConnection()
        {
            m_mssqlConn = new SqlConnection();
        }
        public override void Open()
        {
            try
            {
                m_mssqlConn.ConnectionString = m_dbConnStr;
                m_mssqlConn.Open();
            }
            catch(Exception ex)
            {
                m_errMsg = ex.Message;
                m_errMsg += "\n";
                m_errMsg += ex.StackTrace;
            }
        }
        public override bool IsOpen()
        {
            return m_mssqlConn.State == ConnectionState.Open;
        }
        public override void Close()
        {
            m_mssqlConn.Close();
        }
        public SqlConnection GetRawConn()
        {
            return m_mssqlConn;
        }
    }
  
    /// <summary>
    /// 数据库链接池基类
    /// </summary>
    /// <typeparam name="TDbConn"></typeparam>
    public abstract class DbConnPool<TDbConn> where TDbConn : DbConnectionBase
    {
        /// <summary>
        /// 数据库链接字符串
        /// </summary>
        protected string m_dbConnStr = string.Empty;
        /// <summary>
        /// 数据库链接池容器
        /// </summary>
        private Stack<TDbConn> m_lstConn = new Stack<TDbConn>();
        /// <summary>
        /// 信号量
        /// </summary>
        private Semaphore m_sem;
        /// <summary>
        /// 链接保活的数量,默认为1个
        /// </summary>
        private int m_keepAliveNum = 1;
        /// <summary>
        /// 连接池支持最大的连接数量
        /// </summary>
        private int m_maxConnNum = 10;
        /// <summary>
        /// 错误信息
        /// </summary>
        protected string m_errMsg;
        /// <summary>
        /// 是否已经初始化标记
        /// </summary>
        private bool m_bInit = false;
        //private static object m_mutex = new object();
        /// <summary>
        /// 初始化锁类
        /// </summary>
        private static object m_iniMutex = new object();
        public string GetErrMsg()
        {
            return m_errMsg;
        }
        public void SetDbConnStr(string connStr)
        {
            if (string.IsNullOrEmpty(m_dbConnStr))
            {
                this.m_dbConnStr = connStr;
            }
        }
        public void SetAliveConnNum(int keepAliveNum)
        {
            this.m_keepAliveNum = keepAliveNum;
        }
        public void SetMaxConnNum(int maxNum)
        {
            this.m_maxConnNum = maxNum;
        }
        //
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
进销存毕业设计及论文 采用三层架构开发 (1)基础管理 切换用户:进入系统前从此界面登录,登录时,分多种权限; 权限信息设置:对权限信息进行相关操作; 业务员信息设置:对业务员信息进行相关操作; 客户信息设置:对客户信息进行相关操作; 供应商信息设置:对供应商信息进行相关操作; 商品信息设置:对商品信息进行相关操作; 仓库信息设置:对仓库信息进行相关操作; 角色信息设置:对角色信息进行相关操作; 会员类别信息设置:对会员类别信息进行相关操作; 产品类别信息设置:对产品类别信息进行相关操作; (2)进货管理 进货信息查询:对进货信息按照不同字段进行查询并排序; 进货订单录入和修改:根据库存商品数量,对进货订单进行相关操作; 进货单录入和修改:根据进货订单确认情况,对进货单进行相关操作; 进货单打印:打印进货单; (3) 销售管理 销售信息查询:对销售信息按照不同字段进行查询并排序; 销售订单录入和修改:对销售订单进行相关操作; 销售单录入和修改:根据销售订单确认情况,对销售单进行相关操作; 销售单打印:打印销售单; (4) 库存管理 库存信息查询:对库存信息按照不同字段进行查询并排序; 库存信息的设置:对库存信息进行相关操作; 进货订单的校验:确认进货订单; 销售订单的校验:确认销售订单; 库存单打印:打印库存单; DB_51aspx下为Sql2005数据库,附加后修改JXCDAL/DBHelper.cs中的数据库连接字符串编译后生效 默认总经理帐号/密码:51aspx/51aspx 作者:马忠庆

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值