首页 > 数据库 >SQLHelper帮助类库

SQLHelper帮助类库

时间:2023-11-12 21:05:54浏览次数:27  
标签:类库 帮助 cmdText SQLHelper CommandType commandType sqlCmd SqlConnection conn

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

namespace Yido.AdoNet.ToSQLServer
{
    /// <summary>
    /// SQLHelper帮助类库
    /// </summary>
    public class SQLHelper
    {
        //读书数据库连接字符串
        static readonly string connStr = ConfigurationManager.ConnectionStrings["YidoConn"].ConnectionString;

        /// <summary>
        /// 执行添加、删除、更新操作
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParameters"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string cmdText, CommandType commandType, params SqlParameter[] sqlParameters)
        {
            using(SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();//打开数据库连接
                SqlCommand sqlCmd = conn.CreateCommand();//创建SqlCommand对象
                sqlCmd.CommandText = cmdText; //设置SQL语句
                sqlCmd.CommandType = commandType; //设置命令类型
                sqlCmd.Parameters.AddRange(sqlParameters);
                return sqlCmd.ExecuteNonQuery();
            }
        }

        /// <summary>
        /// 异步执行添加、删除、更新操作
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="cmdType"></param>
        /// <param name="sqlParameters"></param>
        /// <returns></returns>
        public static async Task<int> ExecuteNonQueryAsync(string cmdText, CommandType commandType, params SqlParameter[] sqlParameters)
        {
            using(SqlConnection conn = new SqlConnection(connStr))
            {
                await conn.OpenAsync(); //异步打开数据库连接
                SqlCommand sqlCmd = conn.CreateCommand();
                sqlCmd.CommandText = cmdText;//设置SQL语句
                sqlCmd.CommandType = commandType; //设置命令类型
                sqlCmd.Parameters.AddRange(sqlParameters); //添加参数
                return await sqlCmd.ExecuteNonQueryAsync();

            }
        }

        /// <summary>
        /// 获取SqlDataReader数据流
        /// 使用完毕后,必须关闭SqlDataReader对象
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParameters"></param>
        /// <returns></returns>
        public static SqlDataReader GetSqlDataReader(string cmdText,CommandType commandType, params SqlParameter[] sqlParameters)
        {
            SqlConnection conn = new SqlConnection(connStr);
            conn.Open();//打开数据库连接
            SqlCommand sqlCmd = conn.CreateCommand(); //创建SqlCommand对象
            sqlCmd.CommandText= cmdText; //设置SQL语句
            sqlCmd.CommandType = commandType; //设置命令类型
            sqlCmd.Parameters.AddRange(sqlParameters);//添加参数
            //关闭SqlDataReader对象后其依赖的数据库连接也关闭
            return sqlCmd.ExecuteReader(CommandBehavior.CloseConnection);
        }

        /// <summary>
        /// 异步获取SqlDataReader数据流
        /// 使用完毕后,必须关闭SqlDataReader对象
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParameters"></param>
        /// <returns></returns>
        public static async Task<SqlDataReader> GetSqlDataReaderAsync(string cmdText,CommandType commandType,params SqlParameter[] sqlParameters)
        {
            SqlConnection conn = new SqlConnection(connStr);
            await conn.OpenAsync();//打开数据库连接
            SqlCommand sqlCmd = conn.CreateCommand();
            sqlCmd.CommandText= cmdText; //设置SQL语句
            sqlCmd.CommandType = commandType; //设置命令类型
            sqlCmd.Parameters.AddRange(sqlParameters); //添加参数
            //关闭SqlDataReader对象后其依赖的数据库连接也关闭
            return await sqlCmd.ExecuteReaderAsync(CommandBehavior.CloseConnection);
        }

        /// <summary>
        /// 获取首列首行的值
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParameters"></param>
        /// <returns></returns>
        public static object ExecuteScalar(string cmdText, CommandType commandType, params SqlParameter[] sqlParameters)
        {
            using(SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open(); //打开数据库连接
                SqlCommand sqlCmd = conn.CreateCommand();
                sqlCmd.CommandText= cmdText; //设置SQL语句
                sqlCmd.CommandType = commandType; //设置命令类型
                sqlCmd.Parameters.AddRange(sqlParameters);//添加参数
                return sqlCmd.ExecuteScalar();

            }
        }
        /// <summary>
        /// 异步获取首行首列的值
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="commandType"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public static async Task<object?> ExecuteScalarAsync(string cmdText, CommandType commandType, params SqlParameter[] parameters)
        {
            using(SqlConnection conn = new SqlConnection(connStr))
            {
                await conn.OpenAsync(); //打开数据库连接
                SqlCommand sqlCmd = conn.CreateCommand();
                sqlCmd.CommandText= cmdText; //设置SQL语句
                sqlCmd.CommandType = commandType; //设置命令类型
                sqlCmd.Parameters.AddRange(parameters); //添加参数

                return await sqlCmd.ExecuteScalarAsync();
            }
        }

        /// <summary>
        /// 获取DataTable数据表
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="commandType"></param>
        /// <param name="sqlParameters"></param>
        /// <returns></returns>
        public static DataTable ExecuteDataTable(string cmdText, CommandType commandType, params SqlParameter[] sqlParameters)
        {
            using(SqlConnection conn = new SqlConnection(connStr))
            {
                conn.Open();
                SqlCommand sqlCmd = conn.CreateCommand();
                sqlCmd.CommandText= cmdText; //设置SQL语句
                sqlCmd.CommandType = commandType; //设置命令类型
                sqlCmd.Parameters.AddRange(sqlParameters); //添加参数
                SqlDataAdapter sda = new SqlDataAdapter(sqlCmd);
                DataTable dt = new DataTable();
                sda.Fill(dt);
                return dt;
            }
        }
    }
}

标签:类库,帮助,cmdText,SQLHelper,CommandType,commandType,sqlCmd,SqlConnection,conn
From: https://blog.51cto.com/sunproblem/8330707

相关文章

  • 微软和Red Hat合体:帮助企业更方便部署容器
    早在2015年,微软就已经和RedHat达成合作共同为企业市场开发基于云端的解决方案。时隔两年双方在企业市场的多个方面开展更紧密的合作,今天两家公司再次宣布帮助企业更方便地部署容器。双方所开展的合作包括在微软Azure上部署RedHatOpenShift,在RedHatOpenShift容器平台上原生......
  • 依赖Asp.net Core的类库
    依赖Asp.netCore的类库用VisualStudio创建的类库想依赖Asp.netCore的某些组件,比如Microsoft.AspNetCore.Mvc.Core,在.netcore3.1之后不再单独提供nuget包,应该怎么办呢?直接在.csproj文件里面添加FrameworkReference:<ProjectSdk="Microsoft.NET.Sdk"><PropertyGroup>......
  • GoKIT v2.1是一种基于云的物联网开发平台,旨在帮助开发者快速构建物联网应用程序。
    GoKITv2.1是一种基于云的物联网开发平台,旨在帮助开发者快速构建物联网应用程序。它提供了一组简单易用的工具和API,使开发者能够轻松地与各种类型的设备和传感器进行交互,并实时处理数据。GoKITv2.1的主要特点包括:设备管理:可以轻松管理连接到平台的设备,包括添加、删除和重新配置设......
  • man命令总结linux常用基本命令用法以及查看帮助文档的方法
       Linux中的常见命令1查看系统相关信息命令(1)查看内核版本uname-r(2)显示操作系统发行版本cat/etc/os-release(3)查看当前主机名hostname2查看硬件信息(1)查看CPUlscpucat/proc/cpuinfo(2)查看内存大小free-hcat/proc/meminfo(3)查看硬盘分区情况lsblkcat/proc/partiti......
  • c#读取和写入XML文件帮助类
    一,代码usingSystem;usingSystem.Collections.Generic;usingSystem.IO;usingSystem.Linq;usingSystem.Reflection;usingSystem.Xml.Linq;namespaceCommon.share.Helper{publicstaticclassXmlHelper{publicstaticintReadXmlObject<T......
  • 打工笔记--------------------------------c#处理ZIP文件帮助类
    一,代码usingSystem;usingSystem.IO;usingICSharpCode.SharpZipLib.Checksums;usingICSharpCode.SharpZipLib.Zip;namespaceHelper{publicclassZipHelper{publicstaticboolZipDirectory(stringfolderToZip,ZipOutputStreamzipStream,str......
  • 求职的时候,哪些习惯帮助了你?
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!经过了一个秋招,相信大家感受到了习惯的力量。今天就来和学长一起看看,那些能帮助拿Offer的好习惯吧~01有时间观念在求职过程中,时间管理是非常重要的一环。首先,我们需要对自己......
  • 求职的时候,哪些习惯帮助了你?
    本文首发自公粽hao「林行学长」,欢迎来撩,免费领取20个求职工具资源包。了解校招、分享校招知识的学长来了!经过了一个秋招,相信大家感受到了习惯的力量。今天就来和学长一起看看,那些能帮助拿Offer的好习惯吧~01有时间观念在求职过程中,时间管理是非常重要的一环。首先,我们需......
  • CRM软件对B2B销售有帮助吗?
     CRM软件对B2B销售有用吗?面向B端企业的B2B销售模式,是一个比B2C模式错综复杂的业务形态。最初CRM软件就是为这种业务模式设计的,十几年来碰撞出来的火花不一而足。B2B(也叫BtoB)销售的特点几乎等同于难点,销售周期长,成交难到考验销售的毅力。1、减轻销售日常工作和B2C业务相比,B2B......
  • CRM系统如何帮助无损检测设备企业发展?
    得益于新兴行业的高速发展,近些年无损检测设备在国内市场得到了规模增长。通过搭建完整的CRM客户管理系统,打通营销、销售及服务各环节,进一步提高企业市场竞争力。CRM系统如何帮助无损检测设备企业发展?无损检测设备企业无论在组织规模、市场拓展、供应链等方面都有何广阔的布局。......