首页 > 代码库 > 自己封装的SqlHelper

自己封装的SqlHelper

using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Data.SqlClient;using System.Text;namespace 自己封装的SqlHelper{    public static class SqlHelper    {        //App.config 配置文件的内容        //<?xml version="1.0" encoding="utf-8" ?>        //<configuration>        //  <connectionStrings>        //   <add name="sqlConnStr" connectionString="Data Source=.;initial Catalog=;integrated security =true;"/>        //  </connectionStrings>        //</configuration>        /// 通过配置文件来获取数据库链接字符串        private static readonly string conStr = ConfigurationManager.ConnectionStrings["sqlConnStr"].ConnectionString;        //private  static readonly string  constr = "Data Source=.;initial Catalog=;integrated security =true;";        /// <summary>        /// insert(插入)、delete(删除)、update(更新)        /// </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 cmd = new SqlCommand(sql, con))                {                    //可变参数pms如果用户不传递的时候,是一个长度为0的数组。不是null。                    if (pms != null)                    {                        cmd.Parameters.AddRange(pms);                    }                    con.Open();                    return cmd.ExecuteNonQuery();                }            }        }        /// <summary>        /// 返回单个值,第一行第一列,返回单个值的        /// </summary>        /// <param name="sql">Sql命令语句</param>        /// <param name="pms">执行命令所用参数的集合</param>        /// <returns></returns>        public static object ExecuteScalar(string sql, params SqlParameter[] pms)        {            using (SqlConnection con = new SqlConnection(conStr))            {                using (SqlCommand cmd = new SqlCommand(sql, con))                {                    //可变参数pms如果用户不传递的时候,是一个长度为0的数组。不是null。                    if (pms != null)                    {                        cmd.Parameters.AddRange(pms);                    }                    con.Open();                    return cmd.ExecuteScalar();                }            }        }        /// <summary>        /// select 查询多行多列,调用ExecuteReader()来实现。注意:在返回的时候,reader要调用Close()来关闭对象。        /// </summary>        /// <param name="sql">Sql命令语句</param>        /// <param name="pms">执行命令所用参数的集合</param>        /// <returns></returns>        public static SqlDataReader ExecuteReader(string sql, params SqlDataReader[] pms)        {            SqlConnection con = new SqlConnection(conStr);            {                using (SqlCommand cmd = new SqlCommand(sql, con))                {                    if (pms != null)                    {                        cmd.Parameters.AddRange(pms);                    }                    try                    {                        con.Open();                        //参数System.Data.CommandBehavior.CloseConnection表示当外部调用该DataReader对象的Close()方法时,在该Close()方法内部,会自动调用与该DataReader相关联的Connection的Close()方法                        return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);                    }                    catch                    {                        ////这里的关闭不要写在finally中,因为需要return 一个SqlDataReader                        con.Close();////出错误时,将数据库链接及时关闭,放入“池”中                        con.Dispose();                        throw;////继续往上面抛出错误信息                    }                }            }        }        /// <summary>        /// 返回结果集DataTable        /// </summary>        /// <param name="sql">Sql命令语句</param>        /// <param name="pms">执行命令所用参数的集合</param>        /// <returns></returns>        public static DataTable ExecuteTable(string sql, params SqlParameter[] pms)        {            DataTable dt = new DataTable();            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, conStr))            {                adapter.Fill(dt);            }            return dt;        }    }}

 

自己封装的SqlHelper