zoukankan      html  css  js  c++  java
  • SqlHelper类

    封装一个SQLHelper类方便使用,提供
    ExecuteDataTable(string sql,params SqlParameter[] parameters)、
    ExecuteNonQuery(string sql,params SqlParameter[] parameters)、
    ExecuteScalar(string sql,params SqlParameter[] parameters)等方法。 网上有微软提供的最全的SQLHelper类,是Enterprise Library中的一部分

    ExecuteReader(返回DataReader,因为需要连接,并不是很好的封装,所以建议使用ExecuteDataTable)

    注意事项:通过执行ExecuteReader()方法获取输出参数的时候需要将reader.Close()以后才能获取
    操作模型: App.config   +    SQLHelper   +  带参数的SQL语句


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Configuration;
    using System.Data;
    using System.Data.SqlClient;


    namespace _10封装加多条件查询
    {
        public class SqlHelper
        {
            private static readonly string str = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;
            //ExecuteScalar  ExecuteNonQuery  ExecuteReader Execute


                /// <summary>
                /// 用于增删改,返回受影响的行数
                /// </summary>
                /// <param name="sql"></param>
                /// <param name="ps"></param>
                /// <returns></returns>
            public static int ExecuteNonQuery(string sql,params SqlParameter[] ps)
            {
                using (SqlConnection con=new SqlConnection(str))
                {
                    using (SqlCommand cmd=new SqlCommand(sql,con))
                    {
                        con.Open();
                        cmd.Parameters.AddRange(ps);
                        return cmd.ExecuteNonQuery();
                    }
                }
            }


            /// <summary>
            /// 返回首行首列
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="ps"></param>
            /// <returns></returns>
            public static object ExecuteScalar(string sql,params SqlParameter[] ps)
            {
                using (SqlConnection con=new SqlConnection(str))
                {
                    using (SqlCommand cmd=new SqlCommand(sql,con))
                    {
                        con.Open();
                        cmd.Parameters.AddRange(ps);
                        return cmd.ExecuteScalar();
                    }
                }
            }


            /// <summary>
            /// 返回读取数据库的对象
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="ps"></param>
            /// <returns></returns>
            public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] ps)
            {
                SqlConnection con=new SqlConnection(str);
                using (SqlCommand cmd=new SqlCommand(sql,con))
                {
                    try
                    {
                        con.Open();
                        cmd.Parameters.AddRange(ps);
                        return cmd.ExecuteReader(CommandBehavior.CloseConnection);
                    }
                    catch (Exception e)
                    {
                        con.Close();
                        con.Dispose();
                        throw e;
                    }
                }
            }


            /// <summary>
            /// 把数据读到一个表里并返回
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="ps"></param>
            /// <returns></returns>
            public static DataTable ExecuteTable(string sql,params SqlParameter[] ps)
            {


                DataTable dt=new DataTable();
                using (SqlDataAdapter sda=new SqlDataAdapter(sql,str))
                {
                    sda.SelectCommand.Parameters.AddRange(ps);
                    sda.Fill(dt);
                }
                return dt;
            }


        }
    }

  • 相关阅读:
    [置顶] win7 && win8 下安装SqlServer 2008出现错误无法将对象实例化的问题
    [置顶] sizeof()和c++中变量们
    [置顶] sql2008 附加数据库 .mdf 出现错误 解决方案
    [置顶] 漂亮的 tab 样式
    [置顶] 认识指针和指针变量
    [置顶] SqlHelper类
    [置顶] 第一次使用事物 利用线性表
    [置顶] 设计模式之单例模式 (Design patterns of the The singleton pattern)c#
    [置顶] ListBox控件的数据绑定
    RedHat 6.0(64位)如何使用CentOS YUM源更新的方法
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/5193673.html
Copyright © 2011-2022 走看看