.NET 中数据访问用的 DBHelper(Sql Server) 类

SQL Server数据库操作通用类:example_DBHelper实战指南 ADO.NET 是.NET Framework的一个重要组成部分,为开发人员提供了一组丰富的类,这些类用于与数据源进行交互,执行命令,以及检索结果。本章首先介绍ADO.NET的组件,并概述其在应用程序中的使用方式。 阅读详情
    public class DBHelper
    {
        private static string DBConnectString = "Data Source=.;Initial Catalog=Roseonly;Integrated Security=True";
        private static SqlConnection conn;
        public static SqlDataAdapter dap;
        private static SqlCommand cmd;
        private static SqlCommandBuilder builder;
        private static DBHelper dBHelper;
        public static DataSet ds = new DataSet();
        public DBHelper()
        {
            conn = new SqlConnection(DBConnectString);
        }
        /// <summary>
        /// 实例化DBHelper对象
        /// </summary>
        /// <returns></returns>
        public static DBHelper Instance()
        {
            if (dBHelper == null)
            {
                dBHelper = new DBHelper();
            }
            return dBHelper;
        }
        /// <summary>
        /// 打开数据库连接
        /// </summary>
        void DBOpen()
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
        }
        /// <summary>
        /// 关闭数据库连接
        /// </summary>
        void DBClose()
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }
        /// <summary>
        /// 执行SQL语句获取数据集
        /// </summary>
        /// <param name="sql">sql语句</param>
        /// <returns>DataTable数据集</returns>
        public DataTable GetDataTableBySql(string sql)
        {
            DBOpen();
            DataTable dt = new DataTable();
            dap = new SqlDataAdapter(sql, conn);
            try
            {
                dap.Fill(dt);
                return dt;
            }
            catch
            {
                return null;
            }
            finally
            {
                DBClose();
            }
        }
        /// <summary>
        /// 执行SQL语句
        /// </summary>
        /// <param name="sql">SQL语句</param>
        /// <returns>是否执行成功</returns>
        public bool ExcuteSql(string sql)
        {
            DBOpen();
            cmd = new SqlCommand(sql, conn);
            try
            {
                cmd.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                DBClose();
            }
        }
        /// <summary>
        /// 执行存储过程
        /// </summary>
        /// <param name="proName">存储过程名称</param>
        /// <param name="paras">存储过程参数</param>
        /// <returns>是否执行成功</returns>
        public bool ExcuteProcedure(string proName, SqlParameter[] paras)
        {
            DBOpen();
            cmd = new SqlCommand(proName, conn);
            cmd.CommandType = CommandType.StoredProcedure;

            for (int i = 0; i < paras.Length; i++)
            {
                cmd.Parameters.Add(paras[i]);
            }
            try
            {
                cmd.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }
            finally
            {
                DBClose();
            }

        }
        /// <summary>
        /// 执行存储过程获得数据集
        /// </summary>
        /// <param name="proName">存储过程名</param>
        /// <param name="paras">存储过程参数</param>
        /// <returns>DataTable数据集</returns>
        public DataTable GetDataTableByProcedure(string proName, SqlParameter[] paras)
        {
            DBOpen();
            cmd = new SqlCommand(proName, conn);
            cmd.CommandType = CommandType.StoredProcedure;
            dap = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable();

            for (int i = 0; i < paras.Length; i++)
            {
                cmd.Parameters.Add(paras[i]);
            }
            try
            {
                dap.Fill(dt);
                return dt;
            }
            catch
            {
                return null;
            }
            finally
            {
                DBClose();
            }
        }
        /// <summary>
        /// 
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public DataSet GetDataSetBySql(string sql)
        {
            DBOpen();
            dap = new SqlDataAdapter(sql, conn);
            try
            {
                builder = new SqlCommandBuilder(dap);
                return ds;
            }
            catch
            {
                return null;
            }
            finally
            {
                DBClose();
            }
        }
    }
.NET DbHelper 数据访问类(MSSQL Mysql ORACLE) 个人曾经写过的数据访问接口,包含:MSSQL、Mysql、Oracle等数据库的公共处理接口。可以拿过来直接使用,放在手里好多年了。 IDatabase接口声明如下: namespace Simple.Database { /// /// IDatabase 接口 /// public interface IDatabase { DbConnection dbConn { get; set; } /// /// 创建 DbConnection 对象实例。 /// /// DbConnection 对象实例。 DbConnection CreateConnection(); /// /// 创建 DbCommand 对象实例。 /// /// DbCommand 对象实例。 DbCommand CreateCommand(); /// /// 创建 DbCommand 对象实例。 /// /// Sql 语句或存储过程名。 /// CommandType 参数。 /// DbCommand 对象实例。 DbCommand CreateCommand(string text, CommandType type); /// /// 创建 DbCommand 对象实例。 /// /// Sql 语句或存储过程名。 /// CommandType 参数。 /// 参数集合。 /// DbCommand 对象实例。 DbCommand CreateCommand(string text, CommandType type, IDataParameter[] paras); /// /// 创建 DbCommand 对象实例。 /// /// DbConnection 对象。 /// Sql 语句或存储过程名。 /// CommandType 参数。 /// 参数集合。 /// DbCommand 对象实例。 DbCommand CreateCommand(DbConnection conn, string text, CommandType type, IDataParameter[] paras); /// /// 创建 DbDataAdapter 对象实例。 /// /// DbDataAdapter 对象实例。 DbDataAdapter CreateDataAdapter(); /// /// 创建 DbParameter 对象实例。 /// /// DbParameter 对象实例。 DbParameter CreateParameter(); /// /// 创建 DbParameter 对象实例。 /// /// 参数名称。 /// 参数值。 /// DbParameter 对象实例。 DbParameter CreateParameter(string name, Object value); /// /// 创建 DbParameter 对象实例。 /// /// 参数名称。 /// 参数类型。 /// DbParameter 对象实例。 DbParameter CreateParameter(string name, DbType type); /// /// 创建 DbParameter 对象实例。 /// /// 参数名称。 /// 参数类型。 /// 数据的最大大小。 /// DbParameter 对象实例。 DbParameter CreateParameter(string name, DbType type, int size); /// /// 获取指定长度数据的 DataSet 对象。 /// /// 要读取的 Sql 语句。 /// 开始读取位置的索引。 /// 待读取记录集的长度。 /// DataSet 对象。 DataSet GetDataSet(string sql, int start, int length); /// /// 获取指定长度数据的 DataTable 对象。 /// /// 要读取的 Sql 语句。 /// 开始读取位置的索引。 /// 待读取记录集的长度。 /// DataTable 对象。 DataTable GetDataTable(string sql, int start, int length); /// /// 执行Insert、Update、Delete等操作,并返回受影响的记录数。 /// /// 要执行的 Sql 语句。 /// 受影响的记录数。 int GetEffect(string sql); /// /// 执行 Insert、Update、Delete 等操作,并返回受影响的记录数。 /// /// 要执行的 Sql 语句或存储过程名等。 /// CommandType 的类型,即该命令是 Sql 语句,还是存储过程名等。 /// 受影响的记录数。 int GetEffect(string sql, CommandType type); /// /// 执行带参数的 Sql 语句或存储过程,并返回受影响的记录数。 /// /// 要执行的 Sql 语句或存储过程名等。 /// CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// 参数集合。 /// 受影响的记录数。 int GetEffect(string text, CommandType type, IDataParameter[] paras); /// /// /// /// /// /// /// /// /// int GetEffect(DbConnection conn, string text, CommandType type, IDataParameter[] paras, DbTransaction DbTrans); /// /// /// /// /// List ExecuteTransaction(params string[] sqls); /// /// 执行 Select 语句,并返回 DataSet 对象。 /// /// 要执行的 Sql 语句。 /// DataSet 对象。 DataSet GetDataSet(string sql); /// /// 执行 Select 语句或存储过程,并返回 DataSet 对象。 /// /// 要执行的 Sql 语句或存储过程名等。 /// CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// DataSet 对象。 DataSet GetDataSet(string text, CommandType type); /// /// 执行带参数的 Sql 语句或存储过程,并返回 DataSet 对象。 /// /// 要执行的 Sql 语句或存储过程名等。 /// CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// 参数集合。 /// DataSet 对象。 DataSet GetDataSet(string text, CommandType type, IDataParameter[] paras); /// /// 执行 Select 语句,并返回 DataTable 对象。 /// /// 要执行的 Sql 语句。 /// DataTable 对象。 DataTable GetDataTable(string sql); /// /// 执行 Select 语句或存储过程,并返回 DataTable 对象。 /// /// 要执行的 Sql 语句或存储过程名等。 /// CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// DataTable 对象。 DataTable GetDataTable(string text, CommandType type); /// /// 执行带参数的 Sql 语句或存储过程,并返回 DataTable 对象。 /// /// 要执行的 Sql 语句或存储过程名等。 /// CommandType 参数类型,即该命令是 sql 语句,还是存储过程名等。 /// 参数集合。 /// DataTable 对象。 DataTable GetDataTable(string text, CommandType type, IDataParameter[] paras); /// /// 获取查询所返回的结果集中第一行第一列的值。 /// /// 要处理的 sql 语句(包含待查询的字段)。 /// 字段值。 object GetField(string sql); /// /// 获取查询所返回的结果集中第一行指定列的值。 /// /// 待查询的数据表名称。 /// 待获取字段的列名。 /// 字段值。 object GetField(string sql, string field); /// /// 获取查询所返回的结果集中第一行指定列集合的值。 /// /// 要处理的 sql 语句。 /// 待获取字段的列表。 /// 字段值集合。 object[] GetField(string sql, params string[] fields); } } 立即下载

相关推荐

ASP.NET通用数据库操作类DBHelper

通用的DBHelper类,接口式编程,适用于任何数据库

ASP.NET MVC三层架构中的数据访问操作类SqlHelper、DbHelper

SqlHelper代码: using System; using System.Configuration; using System.Data; using System.Data.SqlClient; using System.Collections; namespace Manager.DAL{ public class SqlHelper{ //创建数据库连接...

Vin Cente 2015

asp.net 中的 DBHelper类

asp.net 中 对数据访问层的增删改查 方法的封装 非常灵活!

Asp .Net Core系列:基于MySQL的DBHelper帮助类和SQL Server的DBHelper帮助类

app.config中添加配置。app.config中添加配置。

程序人生 1142

C#中DBhelper类文件下载

其中定义了增加、删除和修改的方法,也包括了通过DataTable查询和DataReader查询方法两种方式,也添加了注释方便理解

c#多数据库自适应DBHelper源码

1、采用键值对、匿名对象进行CRUD、分页查询操作。 2、无缝对接Sql Server、Access、Sqlite、Mysql四种数据库类型(Sql Server主测版本:2005/2008)。 3、适应中小型应用系统、微服务快速开发。 1、源码附带Sql Server、Access、Sqlite、Mysql四数据库互转插件代码 2、源码附带Excel导入到数据库表(自动生成新表,或将数据导入到已有表)功能代码 3、源码附带自适应数据库表结构Web版数据CRUD功能演示代码 4、Sql Server官方Northwind数据库转换的Sqlite、Access数据库文件 三、注意事项 1、开发环境为Visual Studio 2015,使用.net 4.0开发。 MysqlDBHelper需安装mysql-connector-net(本项目使用6.9.9版) -AccessDBHelper使用的是Office2010驱动,可更改_provider做版本调整;创建Access文件使用了ADOX库。

.net中DBHelper(SqlServer版)

应用程序大多数都是需要与数据库交互做为支撑的,那么相对数据库的访问方式就相当重要了,最基础的是通过Ado的方式了;还有就是一些相对的ORM框架,如EF,Nhibernate等,后续加入; 相应的命名空间自己对应导入就可以 提供一个web.config中的连接串或app.config <connectionStrings> <!--Oracle 连接串--&gt...

weixin_33916256的博客 267

实现自动打包py及替换pyinstaller --add-data参数的方法

实现自动打包py及替换pyinstaller --add-data参数的方法

isS_MK_GmbH的博客 3468

.NET中如何使用DBHelper

前两天刚刚接触到了.NET的数据处理,然后同学就给了我一个DBHelper.cs的文件,结果用着是百般蛋疼啊,接口写的什么东西一点也不会呀。。。在网上找了很多的文章来看,可是那些文章写的大多是中阶以上的人看到一些函数的搭配,那我就写一个从头开始使用的帖子好了。   首先,你要使用sql server 建立一个数据库文件,名称为: data   然后就是在vs2010中配置相关的文件了

xzafei的专栏 2720

Clock Gating设计陷阱:为什么你的ICG cell总是导致setup violation?(附解决方案)

本文深入分析了数字IC设计中ICG(Integrated Clock Gating)单元导致setup时序违规的常见问题,包括时钟偏斜和数据路径过长两大核心原因。通过量化分析影响因素,提供了逻辑重组、寄存器重定时等优化策略,并介绍了预防性设计方法和物理实现阶段的优化技巧,帮助工程师有效解决ICG相关的setup violation问题。

weixin_29168153的博客 202

Multisim 14.0实战:从零搭建可调幅多波形信号发生器(附仿真文件)

本文详细介绍了如何在Multisim 14.0中从零搭建一个可调幅多波形信号发生器,涵盖方波、三角波和正弦波的生成原理与实现步骤。通过核心电路架构解析、关键参数设计及Multisim实战操作,帮助电子工程学习者和硬件工程师掌握信号发生器的设计与调试技巧,并提供仿真文件供实践验证。

nokia的博客 1073

我的DBHelper

using System; using System.Collections; using System.Data; using System.Data.Common; //using MySql.Data.MySqlClient; //using MySql.Data; using System.Reflection; namespace I5iw.Lib {     #reg

凌风的专栏 1624

FPGA_AD9361实战

1.参考网站。

Pual_Georg的博客 748

c# .NET 连接Sql server 的DBHelper.cs类库

using System; using System.Collections; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Configuration; using System.Data.Common; using System.Collect...

吴立星的博客 1107

告别 RPA 和 Selenium,MCP + Playwright 成为自动化开发新宠!

摘要: 随着数字化转型加速,传统自动化工具(如RPA和Selenium)在复杂场景中暴露出开发成本高、灵活性不足等问题。新一代解决方案MCP(Model Context Protocol)与Playwright的结合,通过AI与自动化的无缝对接,实现了智能化的任务处理。MCP支持自然语言交互和上下文感知,开发者无需编写复杂代码即可生成自动化脚本;Playwright则提供多浏览器支持、高性能和易用性。二者结合显著提升开发效率,使自动化更智能、灵活。文章还对比了VS Code与Trae中配置Playwrigh

我先测了 2207

从配置字到实际运动:手把手教你用EtherCAT调试伺服电机的控制模式(以倍福TwinCAT3为例)

本文详细介绍了如何使用EtherCAT调试伺服电机的控制模式,以倍福TwinCAT3为例。从环境搭建、模式配置到状态机切换,提供了完整的操作指南和典型故障排查方法,帮助工程师快速解决‘配置字写入了但电机不转’等常见问题,提升工业自动化现场的调试效率。

weixin_42783709的博客 419

SQL Server ADO.NET 数据访问:从增删改查到断层式访问与DBHelper封装

本文系统介绍了使用ADO.NET访问SQL Server数据库的完整技术方案,涵盖从基础操作到架构设计的核心知识。主要内容包括: 基础操作:使用SqlConnection建立连接,通过SqlCommand执行增删改查(CRUD)操作,重点讲解了参数化查询防止SQL注入 数据访问方式: SqlDataReader实现高效的前向只读查询 DataSet/DataAdapter实现离线数据处理 对比了两种方式的适用场景 代码优化:封装DBHelper工具类简化数据库操作代码 架构设计:引入三层架构(DAL/BLL

2602_96650851的博客 336

达梦数据库连接报错6001网络通信异常

本文主要记录客户端连接达梦数据库报错6001网络通信异常问题分析过程、问题原因以及问题解决方法。

chen_zizi2025的博客 2768

VS-SQL 连接DBHelper类

using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Text; using System.Configuration; namespace DAL { public class DBHelper { p...

兰博zey的博客 1169

【人工智能】提示词避坑指南:为什么大模型越让它“禁止”,它越要“唱反调”?

和 AI 沟通就像和聪明但直脑筋的工科生说话——

奶爸的编程之路,也就一周冷个三天 224

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java mysql dbhelper_dbhelper-DBHelper,使用

本教程分享:《dbhelper》,DBHelper类求一个完整的DBHelper类,最好是写上每一步的注释,哪一步是干嘛的,求代码,求高手,如有请给我贴上,分不多不胜感激。...求一个完整的DBHelper类,最好是写上每一步的注释,哪一步是干嘛的 ,求代码,求高手,如有请给我贴上,分不多 不胜感激 。sql的using System;using System.Collections.Generi...

weixin_33321637的博客 992

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Oracle,SQL Server,Access万能数据库通用类DBHelper

<br />using System; using System.Collections; using System.Collections.Specialized; using System.Data; using System.Data.SqlClient; using System.Data.OleDb; using System.Data.OracleClient; using System.Configuration; using System.Reflection; nam

fjyts的专栏 3947

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

​ADO.NET 全面详解:SQL Server 数据访问从入门到实战​

ADO.NETADO.NET是 .NET Framework /.NET Core 中负责数据访问的类库集合,是应用程序与数据源之间的桥梁。它原生支持 SQL Server,同时可兼容 MySQL、Oracle 等多种关系型数据库,提供了完全面向对象的数据访问架构,可实现数据的查询、新增、修改、删除等全量操作。在 .NET 生态中,ADO.NET是微软官方提供的底层数据访问技术栈,是操作关系型数据库的基石。无论是 EF Core 等 ORM 框架,还是各类数据库操作组件,底层大多基于ADO.NET实现。

a1808724077的博客 345

C# ADO.NET操作 SQL-SERVER 完整实战教程|连接、增删改查、离线数据集、事务、DBHelper 封装

在.NET 开发中,ADO.NET是官方标准数据库访问组件,是程序与各类数据库交互的核心桥梁。不同于传统 ADO,ADO.NET分为在线连接式与离线断开式两套数据访问方案,适配不同业务场景。本文基于 SQL-SERVER 数据库,完整梳理 Data.SqlClient 驱动下全套开发流程,包含核心五大对象、事务处理、通用数据库工具类 DBHelper 封装,同时补充using自动释放资源的规范写法,规避文档中存在的代码缺陷,形成可直接落地的生产级知识点总结。功能点SQL ServerMySQL。

2603_96649739的博客 309
上一篇: 在 ASP.NET Core 中使用 AutoMapper 使 Entity 和 Resource 之间进行映射
下一篇: 在 .NET Core 中使用 FluentValidation 进行验证
Upgrader
博客等级 码龄8年 23粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值