首页 > 数据库 >封装 SqlHelper 数据访问类

封装 SqlHelper 数据访问类

时间:2024-06-14 19:32:47浏览次数:15  
标签:封装 SqlHelper Parameters cmd 访问 pars sql new conn

 

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

namespace DAL.SqlHelper
{
    public class SqlHelper
    {
        private static string connStr = ConfigurationManager.ConnectionStrings["connStr"].ConnectionString;
        /// <summary>
        /// 增删改操作
        /// </summary>
        /// <param name="sql">数据库查询sql语句</param>
        /// <param name="pars">参数</param>
        /// <returns>int</returns>
        /// <exception cref="Exception"></exception>
        public int UpDate(string sql, params SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.Clear();
            if (pars != null)
            {
                cmd.Parameters.AddRange(pars);
            }
            try
            {
                conn.Open();
                return cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                //记录日志

                //向上抛出错误信息
                throw new Exception(ex.Message);
            }
            finally
            {
                conn.Close();
            }
        }

        /// <summary>
        /// 查询单一结果
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pars"></param>
        /// <returns>object</returns>
        /// <exception cref="Exception"></exception>
        public object ExecuteScalar(string sql, params SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.Clear();
            if(pars != null)
            {
                cmd.Parameters.AddRange(pars);
            }
            try
            {
                conn.Open();
                return cmd.ExecuteScalar();
            }catch (Exception ex)
            {
                //记录到日志
                throw new Exception(ex.Message);
            }
            finally { conn.Close(); }
        }

        /// <summary>
        /// 获取DataTtable 数据集
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pars"></param>
        /// <returns>DataTtable</returns>
        /// <exception cref="Exception"></exception>
        public DataTable GetDataTable(string sql, params SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection (connStr);
            SqlCommand cmd = new SqlCommand (sql, conn);
            DataSet dt = new DataSet();
            cmd.Parameters.Clear();
            if(pars != null)
            {
                cmd.Parameters.AddRange(pars);
            }
            try
            {
                SqlDataAdapter sa = new SqlDataAdapter(cmd);
                conn.Open();
                sa.Fill(dt);
                return dt.Tables[0];
            }catch (Exception ex)
            {
                //写入日志
                conn.Close();
                throw new Exception(ex.Message);
            }finally { conn.Close(); }
        }

        /// <summary>
        /// 获取 SqlDataReader 结果
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="pars"></param>
        /// <returns>SqlDataReader</returns>
        /// <exception cref="Exception"></exception>
        public SqlDataReader GetSqlDataReader(string sql, params SqlParameter[] pars)
        {
            SqlConnection conn = new SqlConnection (connStr);
            SqlCommand cmd = new SqlCommand(sql, conn);
            cmd.Parameters.Clear();
            if (pars != null)
            {
                cmd.Parameters.AddRange(pars);
            }
            try
            {
                conn.Open();
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }catch (Exception ex)
            {
                conn.Close();
                throw new Exception(ex.Message);
            }
            finally { conn.Close(); }
        }
    }
}

 

标签:封装,SqlHelper,Parameters,cmd,访问,pars,sql,new,conn
From: https://www.cnblogs.com/tlfe/p/18248503

相关文章

  • nginx配置https访问
    1、配置文件内容如下:worker_processes1;events{worker_connections1024;}error_log/tmp/error.loginfo;http{includemime.types;default_typeapplication/octet-stream;log_formatmain'$remote_addr-$remote_user[$time_local]&qu......
  • Dubbo3 服务原生支持 http 访问,兼具高性能与易用性
    作者:刘军作为一款rpc框架,Dubbo的优势是后端服务的高性能的通信、面向接口的易用性,而它带来的弊端则是rpc接口的测试与前端流量接入成本较高,我们需要专门的工具或协议转换才能实现后端服务调用。这个现状在Dubbo3中得到了彻底解决,Dubbo3.3版本的最新triple协议,在持续提......
  • Docker的通俗理解和通过宿主机端口访问Redis容器的实例
    前言本文解决的问题:入门docker理解镜像与容器、宿主机的概念理解Docker的常用指令创建redis容器,并通过宿主机端口访问默认读者的知识背景:使用过git初次使用Docker本文不会对Docker的定义作出解释,不会涉及Docker的实现原理,旨在帮助读者快速入门docker,理解......
  • 界面组件DevExpress Office File API - 如何用OpenAI增强文档可访问性(二)
    DevExpressOfficeFileAPI是一个专为C#,VB.NET和ASP.NET等开发人员提供的非可视化.NET库。有了这个库,不用安装MicrosoftOffice,就可以完全自动处理Excel、Word等文档。开发人员使用一个非常易于操作的API就可以生成XLS,XLSx,DOC,DOCx,RTF,CSV和SnapReport等企业级文......
  • Radix UI:构建一致且可访问的 React 组件库
    RadixUI:构建一致且可访问的React组件库简介在当今的前端开发领域,React以其声明式编程范式和组件化架构,成为最受欢迎的JavaScript库之一。然而,创建一致的用户体验和可访问的界面往往需要大量的工作。这就是RadixUI组件库发挥作用的地方。什么是RadixUI?RadixU......
  • 让AI知识触手可及——欢迎访问AIDOCZH.COM AI工具中文文档网站!
    让AI知识触手可及——欢迎访问AIDOCZH.COMAI工具中文文档网站!文章目录让AI知识触手可及——欢迎访问AIDOCZH.COMAI工具中文文档网站!一、网址二、已有工具1、LangChain2、Ollama3、DSPy4、Milvus5、Pycaret6、CrewAI三、后续计划四、建站起因无、展望未来在......
  • 网站_域名_DNS_端口_web访问过程
    网站基本概念服务器:能够提供服务器的机器,取决于机器上所安装的服务软件web服务器:提供web服务(网站访问),需要安装web服务软件,Apache,tomcat,iis等域名(DomainName)方便人记的DNS(DomainNameSystem)域名系统,一个分布式数据库,让ip和域名相互映射让你不用记ip先找本地DNS,再找网......
  • 代理离线服务器yum、curl命令访问网络
    在CentOS7上,你可以使用Squid作为代理服务器。以下是在CentOS7上设置代理的简要步骤:1.在可以上网的服务器上安装Squid:sudoyuminstallsquid2.配置Squid:打开Squid配置文件进行编辑:sudonano/etc/squid/squid.conf找到并编辑以下行(确保取消注释并设置合适的值):http_access......
  • 使用Docker部署Nacos 2.3.2开启鉴权后无法访问控制台
    dockerrun-d\-eMODE=standalone\-eJVM_XMS=128m\-eJVM_XMX=128m\-eJVM_XMN=128m\-eSPRING_DATASOURCE_PLATFORM=mysql\-eMYSQL_SERVICE_HOST=xxxxxx\-eMYSQL_SERVICE_PORT=xxxx\-eMYSQL_SERVICE_USER=xxxxxx\-eMYSQL_SERVICE_PASSWORD=xxxxxxxx......
  • Windows Server 2012 R2部署网站后IIS,只要访问网址应用程序池就自动停止,浏览器页面提
     解决方案:1.查看windows日志通过文件资源管理器查看:打开文件资源管理器,找到“我的电脑”。右键点击“管理”。在弹出的窗口中,点击“事件查看器”。在事件查看器中,点击“Windows日志”即可查看各种日志信息 2.找到错误信息......