using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace StudentManager.Dao
{/// <summary>///  通用数据访问类/// </summary>class SQLHelper{private static readonly string connString = "Server=.;DataBase=StudentManager;Uid=sa;Pwd=password01!";// public static readonly string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();//private static readonly string connString =//    Common.StringSecurity.DESDecrypt(ConfigurationManager.ConnectionStrings["connString"].ToString());#region 执行格式化的SQL语句/// <summary>/// 执行增、删、改(insert/update/delete)/// </summary>/// <param name="sql"></param>/// <returns></returns>public static int Update(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();int result = cmd.ExecuteNonQuery();return result;}catch (Exception ex){throw ex;}finally{conn.Close();}}/// <summary>/// 执行单一结果查询(select)/// </summary>/// <param name="sql"></param>/// <returns></returns>public static object GetSingleResult(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();object result = cmd.ExecuteScalar();return result;}catch (Exception ex){throw ex;}finally{conn.Close();}}/// <summary>/// 执行多结果查询(select)/// </summary>/// <param name="sql"></param>/// <returns></returns>public static SqlDataReader GetReader(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();SqlDataReader objReader =cmd.ExecuteReader(CommandBehavior.CloseConnection);return objReader;}catch (Exception ex){conn.Close();throw ex;}}/// <summary>/// 执行返回数据集的查询/// </summary>/// <param name="sql"></param>/// <returns></returns>public static DataSet GetDataSet(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);SqlDataAdapter da = new SqlDataAdapter(cmd); //创建数据适配器对象DataSet ds = new DataSet();//创建一个内存数据集try{conn.Open();da.Fill(ds);  //使用数据适配器填充数据集return ds;  //返回数据集
            }catch (Exception ex){throw ex;}finally{conn.Close();}}#endregion#region 带参数的SQL语句public static int Update(string sql, SqlParameter[] parameter){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();cmd.Parameters.AddRange(parameter);//为Command对象添加参数//foreach (SqlParameter  item in parameter)//{//    cmd.Parameters.Add(item);//}int result = cmd.ExecuteNonQuery();return result;}catch (Exception ex){throw ex;}finally{conn.Close();}}#endregion#region 调用存储过程public static int UpdateByProcedure(string procedureName, SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;try{conn.Open();cmd.CommandType = CommandType.StoredProcedure;//声明当前要执行的是存储过程cmd.CommandText = procedureName;//commandText只需要赋值存储过程名称即可cmd.Parameters.AddRange(param);//添加存储过程的参数int result = cmd.ExecuteNonQuery();return result;}catch (Exception ex){throw ex;}finally{conn.Close();}}/// <summary>/// 执行多结果查询(select)/// </summary>/// <param name="sql"></param>/// <returns></returns>public static SqlDataReader GetReaderByProcedure(string procedureName, SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;try{conn.Open();cmd.CommandType = CommandType.StoredProcedure;cmd.CommandText = procedureName;cmd.Parameters.AddRange(param);SqlDataReader objReader =cmd.ExecuteReader(CommandBehavior.CloseConnection);return objReader;}catch (Exception ex){conn.Close();throw ex;}}#endregion#region 启用事务/// <summary>/// 启用事务执行多条SQL语句/// </summary>      /// <param name="sqlList">SQL语句列表</param>      /// <returns></returns>public static bool ExecSQLByTran(List<string> sqlList){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;try{conn.Open();cmd.Transaction = conn.BeginTransaction();   //开启事务foreach (string itemSql in sqlList)//循环提交SQL语句
                {cmd.CommandText = itemSql;cmd.ExecuteNonQuery();}cmd.Transaction.Commit();  //提交事务(同时自动清除事务)return true;}catch (Exception ex){if (cmd.Transaction != null)cmd.Transaction.Rollback();//回滚事务(同时自动清除事务)throw new Exception("调用事务方法时出现错误:" + ex.Message);}finally{if (cmd.Transaction != null)cmd.Transaction = null;conn.Close();}}#endregion}
}

转载于:https://www.cnblogs.com/Spinoza/p/10241886.html

SQL-sqlHelper001相关推荐

  1. java 必备面试必备

    1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...

  2. sql特殊字符转义,oracle中将字符 ‘ 转义

    oracle中使用sql语句或多或少地会遇到使用特殊字符,比如" ' ",这时,这个单引号就会与前面的单引号匹配,将文本从中间断开,引发问题和错误.这就需要我们进行转义. 而ora ...

  3. weblogic项目java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配 at oracle.jdbc.....错误解决

    原因:数据源配置时间格式问题 解决方案: 1.进入weblogic控制台 2.左侧菜单栏选择Service- JDBC- Data Source 3.选择你的数据源,然后进入Configuration ...

  4. 如何定位并优化慢查询Sql

    根据慢日志定位慢查询SQL. 查询慢日志相关变量,并进行设置: 主要关注下述三个变量: long_query_time.show_query_log_file.show_query_log 慢查询sq ...

  5. Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)

    1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...

  6. SQL与NoSQL的区别 以MySQL与MongoDB为例

    异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...

  7. 【Sql Server】数据库的3大服务

    在数据库SQL SERVER中,处理常用的sql server数据库引擎,还有其他3大服务,分别是集成服务,报表服务,分析服务. 集成服务商可以配置包,这里的包可以理解是数据库引擎里的用户数据库.可以 ...

  8. 【Sql Server】DateBase-自动化

    强大的SQL Server有着神奇的自动化功能,来处理一些人为处理不了的事情! 自动化功能:T-sql语言,系统命令.脚本语言.复制命令.创建角色.索引重建.报表 管理元素:作业.警报.操作员.计划 ...

  9. 【Sql Server】DateBase-触发器

    触发器是数据库中一种特殊的对象,当使用触发器时,一旦执行某个操作,就会触发执行的一段代码! 语法: Create trigger 名 On[table|view] { For after instea ...

  10. 【Sql Server】Database-存储过程

    存储过程是实现编写好的一组特定语言,用来实现的特定功能! 创建 Create procedure存储过程名[参数,参数类型] Default output With Recompile|encrypt ...

最新文章

  1. 微服务是否使SOA变得无关紧要?
  2. Leetcode题库 798.得分最高的最小轮调(差分数组 C实现)
  3. 【华为云技术分享】ARMv8-A存储模型概述(1)
  4. 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记
  5. c语言mergesort 参数,求教关于归并排序MergeSort()的问题
  6. 双闭环调速 matlab,双闭环直流调速系统仿真(Matlab).ppt
  7. 《jdk8u源码分析》jvm.dll接口列表
  8. 机器学习实战之信用卡诈骗(二)
  9. java实现定时自动打卡脚本_android 定时自动上班手机打卡签到实例
  10. Flask 框架 网页跳转详解。
  11. python实现合并多个excel中同名的sheet
  12. 12306 外包给阿里巴巴、IBM 等大企业做是否可行?
  13. 职场历练【管理学之三】
  14. Python3.9的69个内置函数(内建函数)介绍,并附简单明了的示例代码
  15. 面向对象程序设计—C++语言描述电子书pdf下载
  16. js中判断一个对象是否存在
  17. 浅谈标签传播算法:LPA
  18. python小欢喜(八)俄罗斯方块 (5) 生成各种组合形状
  19. 阿里菜鸟招聘java和客户端开发
  20. json-server使用详解

热门文章

  1. (转载)程序员文史综合题目一(附答案)
  2. Oracle数据反向恢复
  3. asp.net 读写 XML 小结
  4. java 打包乱码_Java程序打包之后中文乱码的原因及解决方法
  5. 荔枝服务器维护,手把手为你讲解win10系统自动维护功能管理的问题.
  6. 设计模式---观察者模式(C++)
  7. false在python什么意思_python – `x [False]`在numpy中做什么?
  8. idea创建maven工程_maven创建父子工程 springboot自动配置
  9. Ubuntu安装RabbitMQ及RabbitMQ基于使用
  10. 【渝粤教育】国家开放大学2018年秋季 0053-22T移动通信技术与移动通信设备 参考试题