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;
            }


        }
    }

  • 相关阅读:
    一次性能测试的面试问题
    一次APP测试的感悟
    《程序员跳槽全攻略》读书笔记
    如果有人让你推荐编程技术书,请叫他看这个列表
    上班的一天
    马士兵Java视频教程 —— 学习顺序
    月薪3万的技术网站资源收集
    给32岁的自己一些答案
    《Vuser虚拟用户开发》读书笔记
    shell脚本异常:/bin/sh^M:bad interpreter: No such file or directory
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/5193673.html
Copyright © 2011-2022 走看看