封装SQLHelper

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

namespace GBYLibrary
{
    class SQLHelper
    {
        static string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
        /// <summary>
        /// 实现非查询操作,增删改返回受影响行数,否则返回-1
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="ps"></param>
        /// <returns></returns>
        public static int ExecuteNonQuary(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"></param>
        /// <param name="ps"></param>
        /// <returns></returns>
        public 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();
                }
            }
        }

        public 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;
            }
        }
        /// <summary>
        /// 获取DataSet离线数据集
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="ps"></param>
        /// <returns></returns>
        public static DataSet GetDataSet(string sql, params SqlParameter[] ps)
        {
            DataSet ds = new DataSet();
            using (SqlDataAdapter sda = new SqlDataAdapter(sql, connStr))//创建DataAdapter数据适配器实例
            {
                sda.SelectCommand.Parameters.AddRange(ps);
                sda.Fill(ds);//Fill()填充Da
            }
            return ds;
        }

    }
}
时间: 2024-07-29 20:25:56

封装SQLHelper的相关文章

数据操作的封装--sqlhelper

为了提高软件的灵活性和可维护性,软件的代码需要科学的管理,我们引入了架构这个词.设计模式提醒我们,软件中重复性的代码需要封装起来.最近在做收费系统时,需要和数据库进行频繁的联系,既然是重复的使用,就需要封装,这里使用到了sql helper . 先来看看百度对sqohelper的解释:一个基于.NETFframework的数据库操作组件.虽然不知道组件的具体含义,还是可以猜出来它就是D层中对数据库操作进行封装的工具. 数据库的操作,不外乎四种模式,增.删.改.查,根据返回值来区分,可以分为有返回

.Net学习路线以及各阶段学习书籍,博文,视频的分享

这份文档是我受一位Java大神的委托给15级想学.NET的师弟师妹写的.我想,博客园是我成长进步的地方,作为一个具有互联网分zhuang享bi精神的文艺女青年,我应该把它分享到这里来给更多需要想学.NET的童鞋让他们去成长,让他们少走学习上的一些弯路,写的不合理的地方,欢迎大家批评指正,或者有更好的学习方面的建议和学习资料,欢迎大家留言分享. 前言 各位师弟师妹们,大家好,我是信息13-2班的赖英凤.上星期,你们的班助财哥委托我整理C#的学习路线,还有一些学习资料,视频给大家,我想,作为一名即将

巩固ADO.NET

回想一年半前学数据库的时候是找的培训视频看的,大概10天视频(有一半多时间关于数据库操作的winform)的内容看完后数据库这块就没有了,还以为自己学的挺好,现在想想真是傻的可爱.虽然以ADO.NET为基础的EF挺好用的,但抽时间好好巩固下基础我觉得很重要.不废话了,ADO.NET提供对SQL.Oracle和MySql等数据库的访问操作,它有2个重要的组成部分:.NET数据提供程序和数据集DataSet. 1.什么是ADO.NET .NET数据提供程序就是一个类集,本质的功能就是用于连接数据库.

SQLServer汇总

数据库语言 DML(数据操作语言) select insert delete update DDL(数据定义语言--建表建库等) creat drop alter DCL(数据控制语言) grant revoke 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) 安装时有一个客户端管理软件和一个服务器.我们平常操作的是客户端软件,发送脚本到服务器DMSM(数据库服务器),服务器分析和解析并展示执行结果. 主键的概念 唯一的标识一行数据操作 可以作为其他表的外键来引用 业务主键:有意

Asp.Net 初级 高级 学习笔记

本文并非作者原创,但是作者发表! 不知道十年后,会用多少人收益我的文章,哈哈! 各位,来加个关注![注*]改文章总结了ASP.Net从入门到高级的知识! 朱磊:2012 - 0212 -------------- [朱磊是本文的原创大神,据说当年在黑马刚毕业,月薪税前1W]-------------01.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?02.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?03.值类型的默认值是什么?(情况一:字段或全局静

数据库和ado

数据库和ADO 数据库语言 数据库的简易流程(数据库客户端软件和数据库服务软件的执行流程) 主键的概念 如何创建主键 如何创建外键 主外键关系的概念以及使用 数据库的主要类型 数据库的主要数据类型 使用SQL语句来创建数据库和表 约束分类 top的使用 Distinct的使用(去除重复数) 聚合函数 聚合函数注意事项 between and 和 in 的使用 like, not like 通配符(%,_,[],^) 空值处理:null 是什么? 排序(order by id asc / desc

如鹏网.Net三层架构第一章三层基础

三层架构: 1.通常意义上的三层架构就是将整个业务应用划分为:表现层.业务逻辑层.数据访问层.区分层次的目的即为了“高内聚低耦合”的思想. 2.该课程中通过讲解餐饮管理系统来让大家理解三层之间的关系. 3.课程中会带着大家分析数据库如何设计.软件开发的几个阶段.MD5的使用. NPOI组件如何读写Excel文件.单例模式创建窗体.三层如何搭建.三层之间的关系.手写三层等. 希望大家学会该项目后能理解三层的精髓. ------------------------------------------

【整理】待毕业.Net码农就业求职储备

声明:本文题目来源于互联网,仅供即将从学校毕业的.Net码农(当然,我本人也是菜逼一个)学习之用.当然,学习了这些题目不一定会拿到offer,但是针对就业求职做些针对性的准备也是不错的.此外,除了技术上的准备外,要想得到提升,还得深入内部原理,阅读一些经典书籍(例如Jeffrey Richter的<CLR via C#>)以及借助Reflector或ILSpy反编译查看源码实现,知其然也知其所以然,方能得到感性认识到理性认识的飞跃!另外,本来想将本文标题取为就业求职宝典,但一想这名字太LOW了

C#知识回顾

Main函数是什么? a) 程序入口函数 在程序中使用Main函数有什么需要注意的地方? a) Main函数不能变,有且只有一个 CLR是什么? a) 公共语言运行时 b)  Common Language RunTime 程序集是什么? a) 编译后代码的集合.(包括exe和dll). 加载项目里所有的类到内存,并找到其中的主函数,并作为默认的启动函数调用执行. 当运行一个程序集的时候,CLR做了什么事情? a) 加载项目所有的类到内存,并找到其中的主函数作为默认的启动函数调用执行,但是,如果