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


        }
    }

  • 相关阅读:
    Apache Cassandra 4.0新特性介绍
    NoSQLBench压测工具入门教程
    赵洋:深入了解Materialized View
    PHP与ECMAScript_1_变量与常量
    HTTP_5_通信数据转发程序:代理、网关、隧道
    HTTP_4_返回结果的HTTP状态码
    HTTP_3_HTTP报文
    HTTP_2_HTTP协议概要
    HTTP_1_Web及网络基础
    一个完整的产品设计流程——家庭安全管家
  • 原文地址:https://www.cnblogs.com/CSharpLover/p/5193673.html
Copyright © 2011-2022 走看看