美文网首页
C#下SqlHelper工具类的实现

C#下SqlHelper工具类的实现

作者: Memoyu | 来源:发表于2019-06-11 15:39 被阅读0次

认知尚浅,如有错误,愿闻其详!

概述

  在做.NET项目中,如果项目涉及数据库,我们会大量的使用ADO.NET去对数据库进行一些数据的操作,例如CURD(增、改、读、删)等基本操作。所以,我们会频繁的去写读取数据库数据函数、修改数据库数据函数、删除数据库数据函数等大量的函数,写很多的连接与操作数据库语句,不仅工作量大,而且代码量大,不利于维护。为了规避这些问题,我们需要将这些方法进行封装,便于后期调用。

代码

首先,我们需要将数据库连接字符串写到config配置文件中,便于后期封装的SqlHelper类进行调用。

<connectionStrings>
    <add name ="mssqlserver" connectionString="Data Source = DESKTOP-Q2MQMMC;Initial Catalog = UnityLoginData;User ID = sa ; password = 123456"/>
</connectionStrings>

**再就是创建SqlHelper类,里面封装了对数据库的最基本三个操作方法:ExecuteNonQuery ExecuteScalar ExecuteReader **

    //定义一个连接字符串,读取配置文件中名为mssqlserver的connectionString
   private static string constr1 = ConfigurationManager.ConnectionStrings["mssqlserver"].ConnectionString;
        
        //1.执行增(insert)删(delete)改(upate)的方法
        //ExecuteNonQuery();
        /// <summary>
        /// 执行增(insert)删(delete)改(upate)的方法
        /// </summary>
        /// <param name="sql"> sql语句</param>
        /// <param name="pms">传入的参数</param>
        /// <returns> 返回影响的行数</returns>
        public static int ExecuteNonQuery(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        com.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return com.ExecuteNonQuery();
                }
            }
        }

        //2.执行查询,返回单个值
        //ExecuteScalar()
        /// <summary>
        /// 执行查询,返回单个值
        /// </summary>
        /// <param name="sql"> 传入的sql语句字符串</param>
        /// <param name="pms">sql语句中的参数</param>
        /// <returns>返回一个Object</returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection con = new SqlConnection(constr))
            {
                using (SqlCommand com = new SqlCommand(sql, con))
                {
                    if (pms != null)
                    {
                        com.Parameters.AddRange(pms);
                    }
                    con.Open();
                    return com.ExecuteScalar();

                }
            }
        }
        //3.执行查询,返回多个值
        //ExecuteReader();
        /// <summary>
        /// 执行查询,返回多个值
        /// </summary>
        /// <param name="sql"> 传入的sql语句字符串</param>
        /// <param name="pms">sql语句中的参数</param>
        /// <returns>返回一个Reader,用于获取返回的每个结果</returns>
        public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] pms)
        {
            SqlConnection con = new SqlConnection(constr);
            Console.WriteLine("连接成功");
            using (SqlCommand com = new SqlCommand(sql, con))
            {
                //如果参数不为空,
                if (pms != null)
                {
                    com.Parameters.AddRange(pms);
                }
                try
                {
                    //System.Data.CommandBehavior.CloseConnection这个枚举参数 ,表示将来使用完毕sqlDataReader后,在关闭reader的同时,在sqlDataReader内部会将关联的connection对象也关闭
                    con.Open();
                    return com.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
                }
                catch
                {
                    con.Close();
                    con.Dispose();
                    throw;
                }

            }
        }

相关文章

网友评论

      本文标题:C#下SqlHelper工具类的实现

      本文链接:https://www.haomeiwen.com/subject/ajgioqtx.html