C#的通用DbHelper类(支持数据连接池)示例详解
作者:已秃未强 发布时间:2022-01-14 11:59:56
标签:C#,DbHelper,类
每次新项目的时候,都要从头去找一遍数据库工具类。这里分享一个简单实用的C#的通用DbHelper工具类,支持数据连接池。
连接池配置
<connectionStrings>
<add name="dh_web" connectionString="Data Source=xxx.com;Initial Catalog=xx_db;User ID=xx;Password=**;
pooling=true;max pool size=200" providerName="System.Data.SqlClient"/>
</connectionStrings>
DbHelper类
public class DBHelper
{
private static string connectionString = ConfigurationManager.ConnectionStrings["dh_web"].ConnectionString;
//不带参数的执行命令
public static int ExecuteCommand(string safeSql)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand cmd = new SqlCommand(safeSql, connection);
return cmd.ExecuteNonQuery();
}
}
//带参数的执行命令
public static int ExecuteCommand(string sql, params SqlParameter[] values)
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddRange(values);
public static int GetScalar(string safeSql)
return Convert.ToInt32(cmd.ExecuteScalar());
public static int GetScalar(string sql, params SqlParameter[] values)
public static SqlDataReader GetReader(string safeSql)
SqlConnection connection = new SqlConnection(connectionString);
connection.Open();
SqlCommand cmd = new SqlCommand(safeSql, connection);
return cmd.ExecuteReader(CommandBehavior.CloseConnection);
public static SqlDataReader GetReader(string sql, params SqlParameter[] values)
SqlCommand cmd = new SqlCommand(sql, connection);
cmd.Parameters.AddRange(values);
public static DataTable GetDataSet(string safeSql)
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(ds);
return ds.Tables[0];
public static DataTable GetDataSet(string sql, params SqlParameter[] values)
{
}
注意:
CommandBehavior.CloseConnection解决了流读取数据模式下,数据库连接不能有效关闭的情况.
当某个XXXDataReader对象在生成时使用了CommandBehavior.CloseConnection,那数据库连接将在XXXDataReader对象关闭时自动关闭.
来源:https://www.cnblogs.com/equals/p/16075980.html


猜你喜欢
- 基于有了OO的基础后,开始认真学习设计模式!设计模式是java设计中必不可少的!Apple.javapackage strategy;/**
- 本文实例为大家分享了C#端口扫描器的编写代码,供大家参考,具体内容如下一、项目设计新建项目整体设计最终设计二、单线程1.代码编写button
- 开始接触分布式概念,学习之前要准备搭建Dubbo和Zookeeper环境的简单搭建。Window下安装Zookeeper和Dubbo-adm
- 本文实例讲述了C#逐行读取文件的方法。分享给大家供大家参考。具体如下:这里使用C#逐行读取文件,对于大文件的读取非常有用。StreamRea
- 首先说的是LinearLayout布局下的居中一般是这样的:(注意:android:layout_width="fill_pare
- 其实就只有一条sql语句<select id = "search" resultType = "mate
- 开始用springboot2+hession4实现RPC服务时,发现第一个服务可以调用成功,但第二个就一直报'<'is
- class文件中的特殊字符串首先说明一下, 所谓的特殊字符串出现在class文件中的常量池中,本着循序渐进和减少跨度的原则, 首先把clas
- Jackson解析嵌套类(MismatchedInputException)具体报错如下问题描述:Jackson解析嵌套类问题 调
- import java.io.UnsupportedEncodingException;import java.security.Inval
- 为了更好地组织类,Java 提供了包机制,用于区别类名的命名空间。包的作用1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用
- 上两片第归算法学习:1)递归算法之分而治之策略2)递归算法之归并排序上一篇学习中介绍了了递归算法在排序中的一个应用:归并排序,在排序算法中还
- 本文实例讲述了C#使用Socket实现发送和接收图片的方法。分享给大家供大家参考。具体如下:using System;using Syste
- 本文实例讲述了Android通过SOCKET下载文件的方法。分享给大家供大家参考,具体如下:服务端代码import java.io.Buff
- springboot 异常与重定向在spring中,有两个重定向类型:301,永久性跳转302,暂时性跳转默认调用302。1.下面先通过一个
- 秒杀功能秒杀场景现在已经非常常见了,各种电商平台都有秒杀的产品,接下来我们模拟一个秒杀的项目,最终能够确保高并发下的线程安全。界面比较简单,
- 本文主要介绍了java(包括springboot)读取resources下文件方式实现,分享给大家,具体如下:1、使用项目内路径读取,该路径
- Spring Data Jpa复杂查询总结只是做一个总结所以就不多说废话了实体类@Entity@Table(name = "t_h
- DataTable.Select()根据条件筛选数据很多时候我们获取到一个表的时候需要根据表的包含的队列去筛选内容,一般来说可能想到的就是遍
- 因为工作原因需要读取json文件,最先是使用url方式不符合要求pass。又使用本地方式读取。记录一下方便后期查看。 注:因为资料都是从网上