自己写的SqlHelper数据库助手类

C# SqlHelper类的使用 SqlHelper类 1.首先SqlHelper类是一个基于.NET Framework的数据库操作组件,包含了数据库的操作方法。可以简化在C#中使用ADO.NET连接数据库时每次都要编写连接、打开、执行SQL语句的代码,它将每次连接都要写的代码封装成方法,把要执行的SQL语句通过参数传进去,如数据库连接字符串,SQL参数等,就可以访问数据库了。 2.SqlHelper类的编写不详细说,有完整的现... 阅读详情

using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Data.Common;

namespace SqlHelper_MSSQL
{
    #region 对数据库操作的助手类SqlHelper
    /// <summary>
    /// 对数据库操作的助手类
    /// </summary>
    public class SqlHelper
    {
        /// <summary>
        /// 获得一个数据库连接对象
        /// </summary>
        /// <returns>返回一个指向数据库连接对象的实例</returns>
        private static IDbConnection GetIDbConnectionn()
        {
            //此处返回连接数据库对象可根据需要选择(修改此处实现多数据库操作)
            return new SqlConnection("数据库连接");
        }
        /// <summary>
        /// 获取一个数据源适配器对象
        /// </summary>
        /// <param name="cmd">传入的IDbCommand对象</param>
        /// <returns></returns>
        private static IDbDataAdapter GetDataAdapter(IDbCommand cmd)
        {
            //此处返回DataSet适配器对象可根据需要选择(修改此处实现多数据库操作)
            return new SqlDataAdapter((SqlCommand)cmd);
        }
        /// <summary>
        /// 获取当前应用程序的数据库连接对象的实例
        /// </summary>
        public IDbConnection GetIDbConnection
        {
            get
            {
                return GetIDbConnectionn();
            }
        }
        /// <summary>
        /// 对数据源执行指定的查询并返回DataSet类型的结果集
        /// </summary>
        /// <param name="sql">要执行的SQL语句</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回DataTable类型的结果集</returns>
        public static DataTable ExcuteDataTable(string sql, params IDbDataParameter[] param)
        {
            using (IDbConnection sqlconn = GetIDbConnectionn())
            {
                sqlconn.Open();
                using (IDbCommand cmd = sqlconn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    PushSqlParamter(cmd, param);
                    DataSet ds = new DataSet();
                    IDbDataAdapter adapter = GetDataAdapter(cmd);
                    adapter.Fill(ds);
                    return ds.Tables[0];
                }
            }
        }
        /// <summary>
        /// 对数据源执行指定存储过程并返回DataSet类型的结果集
        /// </summary>
        /// <param name="sql">要执行的存储过程名称</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回DataTable类型的结果集</returns>
        public static DataTable ExcuteDataTablePro(string sql, params IDbDataParameter[] param)
        {
            using (IDbConnection sqlconn = GetIDbConnectionn())
            {
                sqlconn.Open();
                using (IDbCommand cmd = sqlconn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.CommandType = CommandType.StoredProcedure;
                    PushSqlParamter(cmd, param);
                    DataSet ds = new DataSet();
                    IDbDataAdapter adapter = GetDataAdapter(cmd);
                    adapter.Fill(ds);
                    return ds.Tables[0];
                }
            }
        }
        /// <summary>
        /// 对数据源执行指定的查询并返回一行一列的结果集
        /// </summary>
        /// <param name="sql">要执行的SQL语句</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回一行一列的Object类型结果集</returns>
        public static object ExcuteScalcr(string sql, params IDbDataParameter[] param)
        {
            using (IDbConnection sqlconn = GetIDbConnectionn())
            {
                sqlconn.Open();
                using (IDbCommand cmd = sqlconn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    PushSqlParamter(cmd, param);
                    return cmd.ExecuteScalar();
                }
            }
        }
        /// <summary>
        /// 对数据源执行指定存储过程并返回一行一列的结果集
        /// </summary>
        /// <param name="sql">要执行的存储过程名称</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回一行一列的Object类型结果集</returns>
        public static object ExcuteScalcrPro(string sql, params IDbDataParameter[] param)
        {
            using (IDbConnection sqlconn = GetIDbConnectionn())
            {
                sqlconn.Open();
                using (IDbCommand cmd = sqlconn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.CommandType = CommandType.StoredProcedure;
                    PushSqlParamter(cmd, param);
                    return cmd.ExecuteScalar();
                }
            }
        }
        /// <summary>
        /// 对数据源执行指定的查询并返回受影响的行数
        /// </summary>
        /// <param name="sql">要执行的SQL语句</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回受影响的行数</returns>
        public static int ExcuteNonQuery(string sql, params IDbDataParameter[] param)
        {
            using (IDbConnection sqlconn = GetIDbConnectionn())
            {
                sqlconn.Open();
                using (IDbCommand cmd = sqlconn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    PushSqlParamter(cmd, param);
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        /// <summary>
        /// 对数据源执行指定存储过程并返回受影响的行数
        /// </summary>
        /// <param name="sql">要执行存储过程名称</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回受影响的行数</returns>
        public static int ExcuteNonQueryPro(string sql, params IDbDataParameter[] param)
        {
            using (IDbConnection sqlconn = GetIDbConnectionn())
            {
                sqlconn.Open();
                using (IDbCommand cmd = sqlconn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.CommandType = CommandType.StoredProcedure;
                    PushSqlParamter(cmd, param);
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        /// <summary>
        /// 对数据源执行指定的查询并返回一个IDataReader
        /// </summary>
        /// <param name="sql">要执行的SQL语句</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回一个IDataReader</returns>
        public static IDataReader ExcuteReader(string sql, params IDbDataParameter[] param)
        {
            IDbConnection sqlconn = GetIDbConnectionn();
            sqlconn.Open();
            IDbCommand cmd = sqlconn.CreateCommand();
            cmd.CommandText = sql;
            PushSqlParamter(cmd, param);
            return cmd.ExecuteReader();
        }
        /// <summary>
        /// 对数据源执行指定存储过程并返回一个IDataReader
        /// </summary>
        /// <param name="sql">要执行的存储过程名称</param>
        /// <param name="param">传入的SqlParameter参数</param>
        /// <returns>返回一个IDataReader</returns>
        public static IDataReader ExcuteReaderPro(string sql, params IDbDataParameter[] param)
        {
            IDbConnection sqlconn = GetIDbConnectionn();
            sqlconn.Open();
            IDbCommand cmd = sqlconn.CreateCommand();
            cmd.CommandText = sql;
            cmd.CommandType = CommandType.StoredProcedure;
            PushSqlParamter(cmd, param);
            return cmd.ExecuteReader();
        }
        /// <summary>
        /// 将SqlParamter参数赋值给IDbCommand对象
        /// </summary>
        /// <param name="cmd">要赋值的IDbCommand对象</param>
        /// <param name="param">添加的SqlParamter对象</param>
        private static void PushSqlParamter(IDbCommand cmd, params IDbDataParameter[] param)
        {
            if (param.Length > 0)
            {
                for (int i = 0; i < param.Length; i++)
                {
                    cmd.Parameters.Add(param[i]);
                }
            }
        }
    } 
    #endregion
}

做项目中经常会对数据库执行操作,所以就写了这个数据库操作助手类封装大部分常用的操作,网上也有大量的SqlHelper

我做了些特殊处理,可以对多种数据库操作而不用改代码


Code:



C#数据库编程助手(代码生成器) 用于C#数据库编程时<自定义对象>和<数据层>的自动构建代码 立即下载

相关推荐

SqlHelper(包括VS2003和2005)

SqlHelper(包括VS2003和2005),微软提供,但是个人建议不要用,很多朋友还是想用,在这里给大家提供

利用反射将MySQL数据表数据转化为对应的类

首先建立两个类 MySqlOpr负责封装数据库增删改查等基本操作 MySqlMgr负责数据库管理 1.数据库连接和查找操作 这两个操作写在MySqlOpr中 /// &lt;summary&gt; /// 获取MySql数据库连接对象。 /// &lt;/summary&gt; /// &lt;param name="dbFile"&gt;数据库文件路径...

xdedzl的博客 363

activemq_CVE-2015-5254_漏洞复现_源码分析

ActiveMQ-CVE-2015-5254

qq_51550750的博客 940

Sqlhelper

class MysqlHelper : IDBHelper { /// /// 连接字符串 /// private string connString; /// /// 数据库连接对象 /// private MySqlConnection conn;

acmilanvanbasten的专栏 731

PTA-浙大版 《Python程序设计》 第三章编程题目及答案

博主第一次写优快云的博客,所以排版上可能有些不尽人意,代码部分均为自己的思路,可能复杂或者考虑欠妥,欢迎大家一起讨论~ 第一题:大于身高的平均值 这里用了np数组求得平均数,当然for循环累加也是可以的 import numpy as np data = input().split() data = list(map(int,data)) avg = np.mean(data) for i in data: if i > avg: print(i,end = '

Legendwqs的博客 1万+

钉钉宜搭低代码开发师高级认证考试题库113题

钉钉宜搭低代码开发师(高级)考试试题题库,多次考试收集整理,判断题,单选题,多选题,排版清晰,查找方便。希望能帮助到大家!!!

qq_40811920的博客 6396

MySqlHelper

C# MysqlHelper

qq_41543009的博客 798

学习STM32的无人机控制

下面是一个基于STM32的无人机控制的简单示例代码,包括四旋翼的PID控制、遥控器信号解析和电机控制。本示例以STM32F103系列为例,使用Keil C编译器进行开发。

qq_67153941的博客 706

求救各位高手

ddlNewType”有一个无效 SelectedValue,因为它不在项目列表中。<br />参数名: value 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 <br /><br />异常详细信息: System.ArgumentOutOfRangeException: “ddlNewType”有一个无效 SelectedValue,因为它不在项目列表中。<br />参数名: value<br /><br />源错误:<b

zhangtaobeijin的专栏 5040

LaTeX公式转Word竟这么简单?Python三行代码实现学术论文格式无忧

本文介绍如何利用Python的latex2word库,仅需三行代码即可将LaTeX数学公式精准转换为Word原生Office Math对象,解决学术写作中LaTeX与Word格式割裂的难题。该方法支持批量处理、格式保真,并能与Markdown、Jupyter Notebook等工具集成,构建自动化写作流程,实现学术论文格式无忧。

qsc90123456的博客 295

【QGIS入门实战精品教程】1.2:QGIS与ArcGIS的区别和联系

以下是GISGeography官方给出的两者之间的27点比较(译): 官方网址:https://gisgeography.com/qgis-arcgis-differences/ 1.QGIS容纳更多的数据格式 ArcGIS没有支持所有的数据格式,毫无疑问,QGIS在处理各种类型的数据时非常顺手,QGIS在数据格式方面是个多面手,在使用数据方面是它的长处。 QGIS使用GDAL/OGR库来读取和写入地理信息数据格式,支持超过70种矢量格式。QGIS一开始就是为了与PostGIS协作而诞生的,而支持的名单.

智慧空间实验室 2040

SqlHelper类的使用

机房重构进行了一小阶段,刚开始敲代码的时候,实现每一个功能都要在D层类中写一次数据据库连接(SqlConnection),SqlCommand,SqlDataReader语句,感到相当地麻烦。遇到这个问题后,就想到了面向对象的封装性,把D层中重复的SQL语句封装起来,以提高代码的复用性。通过上网查资料,知道了SqlHelper类和其使用方法。     SqlHelper类将数据库连接(SqlCo

炸丸儿 2254

GEE 案例分析:利用Landsat数据进行FAI、NDVI及CHLA分析并统计平均值(巢湖为例)

浮游藻类指数(FAI)、归一化植被指数(NDVI)及叶绿素a(CHLA)是水体环境监测的重要指标。本文利用Google Earth Engine(GEE)平台,基于Landsat 5和Landsat 8数据,进行水体藻类及植被监测。

此星光明博客 1336

SqlHelper数据库访问类

参考上一篇:数据库连接配置app.config 写一个通用的数据库访问类。  public class SqlHelper //数据库连接类 { //获取数据库连接字符串,其属于静态变量且只读,项目中所有文档可以直接使用,但不能修改 public static readonly string connectString = ConfigurationM

Peter-H 2349

点云数据生成DEM,并导出三维模型

点云数据生成DEM,并导出三维模型

qq_42540466的博客 2万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C#操作数据库SqlHelper类

C#操作数据库SqlHelper类

菜刀居士的专栏 1826

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

MySQL--SQLHELPER类

需要引用的命名空间: using MySql.Data.MySqlClient;//为连接mysql服务 using System.Configuration;//为连接配置文件服务 using System.Data;//为Datatabel服务 注意:需要提前引用Mysql.Data。不知到如何引用的请看`在C#连接mysql 代码: public class SQLHELPER ...

番茄红了 791

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

SqlHelper类详解

SqlHelper 类实现详细信息 SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类。  在 SqlHelper 类中实现的每种方法都提供了一组一致的重载。这提供了一种很好的使用 SqlHelper 类来执行命令的模式,同时为开发人员选择访问数据的方式提供了必要的灵活性。每种方法的重载都支持不同的方法参数,因此

itmaxin的专栏 2420

MySQL数据库SqlHelper类

连接驱动,需要去mysql官方网站下载一个MySql.Data.dll文件,目前版本是6.0,然后倒入令名空间:using MySql.Data.MySqlClient;using System;using System.Data;using System.Xml;using MySql.Data.MySqlClient;using System.Collections;n

小老鼠(Alex) 2705

用C#写一个SqlHelper类,方便每次复制一下。

用C#写一个SqlHelper类,方便每次复制一下。 /// <summary> /// 数据库连接类 /// </summary> public static class SqlHelper { /// <summary> /// 连接字符串 /// </summary> private static string strConn = System.Configu

灰羊驼丶的博客 368

sqlhelper类 java_java操作数据库的类——SqlHelper(简易版)

一个java操作数据库的类SqlHelper,本例用的是mysql数据库,其实都一样,用别的数据库时候就换一个jar包,import不同的包就行了。SqlHelper代码:/*** 对数据库操作的类*/import java.sql.DriverManager;import java.sql.ResultSet;import com.mysql.jdbc.Connection;import com...

weixin_28715081的博客 584

创建SQlHelper类

当我们在做项目的时候 要经常连接数据库 但数据库哪重复而又反复的代码让我们非常头疼 哪么我们就写一个SqlHelper类吧  吧连接数据库的代码封装到一个类中简化代码 下面以我的一个Asp.net的练习为例 这个程序有 三个功能 登陆 注册  和查看数据表的信息  下面是.aspx文件后台代码 已登录事件为例 protected void Button1_C

kangk1992的专栏 874

ACCESS数据库C#操作类(SQLHELPER修改版)

这个是针对ACCESS数据库操作的类,同样也是从SQLHELPER提取而来,分页程序的调用可以参考MSSQL那个类的调用,差不多的,只是提取所有记录的数量的时候有多一个参数,这个需要注意一下!c# 代码 using System;    using System.Text;    using System.Collections;    using System

xingan的专栏 2430

C#-SqlHelper类

使用C#编写SqlHelper类 无聊的周末,学习、编码无力。想找点事干但又不知道干点什么,猛然发现自己学过的SqlHelper快忘记了。于是乎虎躯一震心想怎能如此堕落下去,立马打开电脑,双手摸上键盘。写下此文作为学习过程中的复习,并分享出知识(顺便打发时间-^.^-)。 下面开始正文 这里以控制台程序为案例。首先我们需要先配置一下连接字符串,我们需要在app.config文件中增加如下节点...

cxu123321的博客 622

java操作数据库的类——SqlHelper(简易版)

一个java操作数据库的类SqlHelper,本例用的是mysql数据库,其实都一样,用别的数据库时候就换一个jar包,import不同的包就行了。 SqlHelper代码: /** * 对数据库操作的类 */ import java.sql.DriverManager; import java.sql.ResultSet; import com.mysql.jdbc.Connect

無名的博客 2152

C# SqlHelper数据库处理类

SQLHELPER支持连接字符串、事务、连接对象的Sql Server数据库处理类(对于类型的判断采用if语句) 1 using System; 2 using System.Data; 3 using System.Data.SqlClient; 4 using System.Collections; 5 using System.Collecti...

217
上一篇: Linq使用1
下一篇: JavaScript对象反射
IT回忆录
博客等级 码龄16年 42粉丝 100原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值