前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个自定义的C#数据库操作基础类 SqlHelper

一个自定义的C#数据库操作基础类 SqlHelper

原创
作者头像
用户7108768
修改2021-11-02 14:42:17
6190
修改2021-11-02 14:42:17
举报

SqlHelper其实是我们自己编写的一个类,使用这个类目的就是让使用者更方便、更安全的对数据库的操作,既 是除了在SqlHelper类以外的所有类将不用引用对数据库操作的任何类与语句,无须担心数据库的连接与关闭的问题。

代码语言:javascript
复制
{ 
    public class SQLHelper 
    { 
        private string strConn = null; 
        private SqlConnection Conn = null; 
        private SqlCommand Cmd = null; 
        private SqlDataReader Sqlsdr = null; 
        public SQLHelper() 
        { 
            //利用反射连接数据库 
            strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString; 
            //strConn = "data source=192.168.24.83;initial catalog=NewsSystem;user id=sa;password=123456"; 
            Conn = new SqlConnection(strConn); 
        }

    /// <summary> 
    /// 状态 
    /// </summary> 
    /// <returns>SqlConnection</returns> 
    private SqlConnection GetConn() 
    { 
        if (Conn.State == ConnectionState.Closed) 
        { 
            Conn.Open(); 
        } 
        return Conn; 
    } 

    /// <summary> 
    /// 执行不带参数的增删改操作 
    /// </summary> 
    /// <param name="CmdText">执行的SQL语句或存储过程</param> 
    /// <param name="CmdType">类型</param> 
    /// <returns>增删改的操作数</returns> 

    public int ExecuteNonQuery(string CmdText, CommandType CmdType) 
    { 
        //数据库连接语句 
        int res; 
        try 
        { 
            Cmd = new SqlCommand(CmdText, GetConn()); 
            Cmd.CommandType = CmdType; 
            res = Cmd.ExecuteNonQuery(); 

        } 
        catch (Exception ex) 
        { 

            throw ex; 
        } 
        finally 
        { 
            if (Conn.State == ConnectionState.Open) 
            { 
                Conn.Close(); 
            } 
        } 
        return res; 
    } 

    /// <summary> 
    /// 执行带参数的增删改操作 
    /// </summary> 
    /// <param name="CmdText">执行的SQL语句或存储过程</param> 
    /// <param name="Parameters">参数</param> 
    /// <param name="CmdType">类型(SQL语句或存储过程)</param> 
    /// <returns>增删改的操作数</returns> 
    public int ExecuteNonQuery(string CmdText, SqlParameter[] Parameters, CommandType CmdType) 
    { 
        int res; 
        try 
        { 
            Cmd.Parameters.AddRange(Parameters); 
            Cmd = new SqlCommand(CmdText, GetConn()); 
            Cmd.CommandType = CmdType; 
            res = Cmd.ExecuteNonQuery(); 
        } 
        catch (Exception ex) 
        { 

            throw ex; 
        } 
        finally 
        { 
            if (Conn.State == ConnectionState.Open) 
            { 
                Conn.Close(); 
            } 
        } 
        return res; 
    } 


    /// <summary> 
    /// 不带参数的查询 
    /// </summary> 
    /// <param name="CmdText">执行的SQL语句或存储过程</param> 
    /// <param name="CmdType">类型</param> 
    /// <returns>查询的数据</returns> 
    public DataTable ExecuteQuery(string CmdText, CommandType CmdType) 
    { 
        DataTable dt = new DataTable(); 

        using (Sqlsdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection)) 
        { 
            Cmd = new SqlCommand(CmdText, GetConn()); 
            Cmd.CommandType = CmdType; 
            dt.Load(Sqlsdr); 
        } 
        return dt; 
    } 

    /// <summary> 
    /// 带参数的查询 
    /// </summary> 
    /// <param name="CmdText">SQL语句或存储过程</param> 
    /// <param name="Parameters">参数</param> 
    /// <param name="CmdType">类型</param> 
    /// <returns>查询的数据</returns> 
    public DataTable ExecuteQuery(string CmdText, SqlParameter[] Parameters, CommandType CmdType) 
    { 
        DataTable dt = new DataTable(); 

        using (Sqlsdr = Cmd.ExecuteReader(CommandBehavior.CloseConnection)) 
        { 
            Cmd = new SqlCommand(CmdText, GetConn()); 
            Cmd.CommandType = CmdType; 
            Cmd.Parameters.AddRange(Parameters); 
            dt.Load(Sqlsdr); 
        } 
        return dt; 
    } 
} 

}</pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档