自己动手写三层(不用代码生成器)

本文介绍了一个用于简化数据库操作的SQLHelper类实现,包括数据库连接管理、执行增删改查等基本功能,并展示了如何通过参数化查询提高安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SqlHelper.cs(数据库操作的封装起来)------->MODEL(将表结构转换成类)------>DAL(数据访问层)---------->BLL(业务逻辑层).

. 1.简单的SqlHelper代码

    private static string connStr = ConfigurationManager.ConnectionStrings["connstr"].ConnectionString;//获得数据库信息

    private static SqlConnection conn;//声明一个CONN

    //创建通道
    public static SqlConnection Conn
    {
        get {
            //判断conn是否为空和链接状态是否是坏的
            if (conn == null || conn.State == ConnectionState.Broken)
            {
                conn = new SqlConnection(connStr);
            }
            return SqlHelper.conn;
           }
       
    }

    public static void OpenDB()
    {
        Conn.Open();//打开通道
    }

    public static void CloseDB()
    {
        Conn.Close();//关掉通道
    }

    #region 1.数据库的增,删,改操作
    /// <summary>
    /// 数据库的增,删,改
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public static int ExecuteNonQuery(string sql, params SqlParameter[] parameters)
    {
        int result = 0;
        OpenDB();//打开数据库连接
        SqlCommand cmd = new SqlCommand(sql,conn);
        if (parameters.Length > 0 && parameters != null)
        {
            cmd.Parameters.AddRange(parameters);
        }
        try
        {
            result = cmd.ExecuteNonQuery();
        }
        catch (Exception ex)
        {

            throw ex;
        }
        finally
        {
            CloseDB();//关掉数据库
        }
        return result;//返回影响行数

    } 
    #endregion

    #region 2.数据库的查询,返回一个数据表
    /// <summary>
    /// 数据库的查询,返回一个数据表
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="paramets"></param>
    /// <returns></returns>
    public static DataTable ExecuteAdapter(string sql, params SqlParameter[] paramets)
    {
        OpenDB();
        SqlCommand cmd = new SqlCommand(sql,conn);
        if (paramets != null && paramets.Length > 0)
        {
            cmd.Parameters.AddRange(paramets);
        }
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        try
        {
            da.Fill(dt);
        }
        catch (Exception ex)
        {

            throw ex;
        }
        finally
        {
            CloseDB();//关掉数据库
        }
        return dt;

    } 
    #endregion

    #region 3.返回结果的第一行,第一列的object
    /// <summary>
    /// 返回结果的第一行,第一列
    /// </summary>
    /// <param name="sql"></param>
    /// <param name="parameters"></param>
    /// <returns></returns>
    public static object ExecuteScalar(string sql, params SqlParameter[] parameters)
    {
        OpenDB();//打开数据库
        object result = null;
        SqlCommand cmd = new SqlCommand(sql,conn);
        if (parameters != null && parameters.Length > 0)
        {
            cmd.Parameters.AddRange(parameters);//增加参数数组
        }

        try
        {
            result = cmd.ExecuteScalar();
        }
        catch (Exception ex)
        {

          }
        finally
        {
            CloseDB();
        }
        return result; //返回值 
    } 
    #endregion


2.MODEL和DAL,BLL后面继续加上

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值