zoukankan      html  css  js  c++  java
  • 自己封装的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;
            }
        }
    
    }
  • 相关阅读:
    Lync 2013和Exchange 2013集成
    eclise配置tomcat出现服务Tomcat version 6.0 only supports J2EE 1.2, 1.3, 1.4 and Java EE 5 Web modules
    二叉树C语言
    NYOJ 298 相变点(矩阵高速功率)
    简化网站开发:SiteMesh小工具
    Android Ant 和 Gradle 包装工艺和效率控制
    [Webpack 2] Chunking common modules from multiple apps with the Webpack CommonsChunkPlugin
    [Webpack 2] Grouping vendor files with the Webpack CommonsChunkPlugin
    [Webpack 2] Hashing with Webpack for long term caching
    [Webpack 2] Maintain sane file sizes with webpack code splitting
  • 原文地址:https://www.cnblogs.com/Time_1990/p/3998353.html
Copyright © 2011-2022 走看看