public class SQLHelper

    {

       //连接数据库

       static string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;

       /// <summary>

       /// 执行非查询语句

       /// </summary>

       /// <param name="sql">sql语句</param>

       /// <param name="ps">参数</param>

       /// <returns>受影响行数</returns>

       private static int ExecuteNonQuery(string sql, params SqlParameter[] ps)

       {

           using (SqlConnection conn=new SqlConnection (connStr))

           {

               using (SqlCommand cmd=new SqlCommand(sql,conn))

               {

                   cmd.Parameters.AddRange(ps);

                   conn.Open();

                   return cmd.ExecuteNonQuery();

               }

           }

       

       }

       /// <summary>

       /// 执行单数据的查询

       /// </summary>

       /// <param name="sql">sql语句</param>

       /// <param name="ps">参数</param>

       /// <returns>第一行第一列的值</returns>

       private static object ExecuteScalar(string sql, params SqlParameter[] ps)

       {

           using (SqlConnection conn = new SqlConnection(connStr))

           {

               using (SqlCommand cmd = new SqlCommand(sql, conn))

               {

                   cmd.Parameters.AddRange(ps);

                   conn.Open();

                   return cmd.ExecuteScalar();

               }

           }





       }

       /// <summary>

       /// 查询,读取数据

       /// </summary>

       /// <param name="sql"></param>

       /// <param name="ps"></param>

       /// <returns>返回SqlDataReader类型</returns>

       private static SqlDataReader ExecuteReader(string sql, params SqlParameter[] ps)

       {

           SqlConnection conn = new SqlConnection(connStr);

           try

           {

               using (SqlCommand cmd = new SqlCommand(sql, conn))

               {

                   cmd.Parameters.AddRange(ps);

                   conn.Open();

                   return cmd.ExecuteReader(System.Data.CommandBehavior.CloseConnection);

               }

           }

           catch (Exception ex)

           {

               conn.Dispose();

               throw ex;

           }

       }





       private static DataSet GetDataSet(string sql, params SqlParameter[] ps)

       {

           DataSet ds = new DataSet();

           using (SqlDataAdapter sda = new SqlDataAdapter(sql, connStr))

               {

                   sda.SelectCommand.Parameters.AddRange(ps);

                   sda.Fill(ds);

               }

           return ds;

       }

    }

简单的sqlHelper类的更多相关文章

  1. c#中sqlhelper类的编写(二)

    上一篇文章讲了简易版的SqlHelper类的编写,我们在这里就上一篇文章末尾提出的问题写出解决方案. sql语句注入攻击已经是众所周知的了.我们如何在C#中保护自己的数据库不被这样的方式攻击呢? 不用 ...

  2. c#中sqlhelper类的编写(一)

    在.net平台的项目开发中,凡是用到数据库交互的,都有必要了解SqlHelper类的原理. 步骤一: 我就拿WPF项目开发作为例子.首先要新建一个App.config(应用程序配置文件).注意,在VS ...

  3. 微软官方SqlHelper类 数据库辅助操作类

    数据库操作类真的没有必要自己去写,因为成熟的类库真的非常完善了,拿来直接用就好,省时省力. 本文就为大家介绍微软官方的程序PetShop4.0中的SqlHelper类,先来做一下简单的介绍,PetSh ...

  4. C#封装CRUD到SqlHelper类解读

    1.简单说明一下,一般情况下,数据库连接字符串是在App.config文件中进行配置,然后再在代码中进行引用.因此,我们在这里先看一下App.config文件. 首先看需要添加的内容: 参数说明: n ...

  5. VC++ 一个简单的Log类

    在软件开发中,为程序建立Log日志是很必要的,它可以记录程序运行的状态以及出错信息,方便维护和调试. 下面实现了一个简单的Log类,使用非常简单,仅供参考. // CLogHelper.h : hea ...

  6. 最新的SqlHelper 类

    最新的SqlHelper 类 摘自:http://www.cnblogs.com/sufei/archive/2010/01/14/1648026.html using System; using S ...

  7. JAVA WEB SQLHelper类的封装

    在这次做项目中,我对自己最满意的就是封装了一下SQLHelper类,我对自己感到骄傲主要是 我是初学者,我刚开始不知道可以这样做,我只是想着试着去这样做了,结果真的可以,所以我 在我的模块就自己封装了 ...

  8. [置顶] 自己写sqlhelper类

    自己写sqlhelper类 using System; using System.Collections.Generic; using System.Configuration; using Syst ...

  9. ADO.NET复习——自己编写SqlHelper类

    今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...

  10. C++ 最简单的日志类

    最近搞一个 C++ 项目的二次开发,没玩过 C++,可谓步履维艰.自己写个简单的日志类都被各种坑折磨.终于搞定了. 参考了这篇博客,并且进一步简化:https://www.cnblogs.com/Ds ...

随机推荐

  1. 2025年BI工具趋势:DataFocus与FineBI的技术创新对比

    1. 摘要 DataFocus 和 FineBI 都是旨在帮助企业利用数据进行决策的商业智能 (BI) 产品.DataFocus 强调其下一代.基于搜索的 BI 方法,侧重于易用性和快速仪表板创建,尤 ...

  2. 『Plotly实战指南』--雷达图绘制与应用

    在数据分析和可视化领域,雷达图是一种适用于多维数据的可视化.综合评估和决策支持的工具. 雷达图通过将数据点沿多个轴分布,并通过多边形面积或线条连接来展示数据的多维度特征,能够直观地呈现数据在各个维度上 ...

  3. Win10/win11系统如何禁用笔记本自带键盘、笔记本键盘禁用后无法恢复解决办法【靠谱】

    原文:[靠谱]Win10/win11系统如何禁用笔记本自带键盘.禁用后无法恢复解决办法 - 搜栈网 (seekstack.cn)

  4. ubuntu nginx + php7.2 + mysql5.7环境搭建

    一.换源 备份原来的源 sudo cp /etc/apt/sources.list /etc/apt/sources_init.list 更换源 sudo gedit /etc/apt/sources ...

  5. 【经验】Win11的Ubuntu虚拟机启动虚拟化|此平台不支持虚拟化的 Intel VT-x/EPT(方案汇总+自己的解决方案)

    我开虚拟化是为了在虚拟机中运行VirtualBox,如果不开CPU虚拟化,会报错VBoxManage error: VT-x is not available (VERR_VMX_NO_VMX). 文 ...

  6. Flutter图片组件的定制开发与配置实践

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  7. 【SQL周周练】一千条数据需要做一天,怎么用 SQL 处理电表数据(如何动态构造自然月)

    大家好,我是"蒋点数分",多年以来一直从事数据分析工作.从今天开始,与大家持续分享关于数据分析的学习内容. 本文是第 6 篇,也是[SQL 周周练]系列的第 5 篇.该系列是挑选或 ...

  8. Torch-Pruning工具箱

    Torch-Pruning 通道剪枝网络实现加速的工作. Torch pruning是进行结构剪枝的pytorch工具箱,和pytorch官方提供的基于mask的非结构化剪枝不同,工具箱移除整个通道剪 ...

  9. XmlNamespaceManager与XmlDocument.NameTable浅述

    XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); XmlNamespaceManager nsmgr=new XmlNamespaceMan ...

  10. 猫映射(Arnold变换),猫脸变换介绍与基于例题脚本的爆破

    前置信息 http://www.jiamisoft.com/blog/index.php/7249-erzhituxiangjiamisuanfaarnold.html https://mp.weix ...