SQL-sqlHelper001
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相关推荐
- java 必备面试必备
1.JDK 和 JRE 有什么区别? JDK(Java Development Kit),Java开发工具包 JRE(Java Runtime Environment),Java运行环境 JDK中包含 ...
- sql特殊字符转义,oracle中将字符 ‘ 转义
oracle中使用sql语句或多或少地会遇到使用特殊字符,比如" ' ",这时,这个单引号就会与前面的单引号匹配,将文本从中间断开,引发问题和错误.这就需要我们进行转义. 而ora ...
- weblogic项目java.sql.SQLException: ORA-01861: 文字与格式字符串不匹配 at oracle.jdbc.....错误解决
原因:数据源配置时间格式问题 解决方案: 1.进入weblogic控制台 2.左侧菜单栏选择Service- JDBC- Data Source 3.选择你的数据源,然后进入Configuration ...
- 如何定位并优化慢查询Sql
根据慢日志定位慢查询SQL. 查询慢日志相关变量,并进行设置: 主要关注下述三个变量: long_query_time.show_query_log_file.show_query_log 慢查询sq ...
- Go 学习笔记(55)— Go 标准库 sql (初始化数据库、插入、更新、删除数据库表、单行查询、多行查询、事务处理)
1. 标准库说明 Go 的标准库中是没有数据库驱动,只提供了驱动接口,有很多第三方实现了驱动,我们这里选择 go-sql-driver 这个实现是目前使用最多的.github 地址是:https:// ...
- SQL与NoSQL的区别 以MySQL与MongoDB为例
异同对比 1.语言和结构层面 SQL数据库,是基于表的,并且用结构化语言也就是SQL来定义和操纵数据.一方面,这是非常强大的:SQL是最通用和最广泛使用的选项之一,使其成为一个安全的选择,尤其适用于复 ...
- 【Sql Server】数据库的3大服务
在数据库SQL SERVER中,处理常用的sql server数据库引擎,还有其他3大服务,分别是集成服务,报表服务,分析服务. 集成服务商可以配置包,这里的包可以理解是数据库引擎里的用户数据库.可以 ...
- 【Sql Server】DateBase-自动化
强大的SQL Server有着神奇的自动化功能,来处理一些人为处理不了的事情! 自动化功能:T-sql语言,系统命令.脚本语言.复制命令.创建角色.索引重建.报表 管理元素:作业.警报.操作员.计划 ...
- 【Sql Server】DateBase-触发器
触发器是数据库中一种特殊的对象,当使用触发器时,一旦执行某个操作,就会触发执行的一段代码! 语法: Create trigger 名 On[table|view] { For after instea ...
- 【Sql Server】Database-存储过程
存储过程是实现编写好的一组特定语言,用来实现的特定功能! 创建 Create procedure存储过程名[参数,参数类型] Default output With Recompile|encrypt ...
最新文章
- 微服务是否使SOA变得无关紧要?
- Leetcode题库 798.得分最高的最小轮调(差分数组 C实现)
- 【华为云技术分享】ARMv8-A存储模型概述(1)
- 《从Paxos到Zookeeper:分布式一致性原理与实践》第一章读书笔记
- c语言mergesort 参数,求教关于归并排序MergeSort()的问题
- 双闭环调速 matlab,双闭环直流调速系统仿真(Matlab).ppt
- 《jdk8u源码分析》jvm.dll接口列表
- 机器学习实战之信用卡诈骗(二)
- java实现定时自动打卡脚本_android 定时自动上班手机打卡签到实例
- Flask 框架 网页跳转详解。
- python实现合并多个excel中同名的sheet
- 12306 外包给阿里巴巴、IBM 等大企业做是否可行?
- 职场历练【管理学之三】
- Python3.9的69个内置函数(内建函数)介绍,并附简单明了的示例代码
- 面向对象程序设计—C++语言描述电子书pdf下载
- js中判断一个对象是否存在
- 浅谈标签传播算法:LPA
- python小欢喜(八)俄罗斯方块 (5) 生成各种组合形状
- 阿里菜鸟招聘java和客户端开发
- json-server使用详解
热门文章
- (转载)程序员文史综合题目一(附答案)
- Oracle数据反向恢复
- asp.net 读写 XML 小结
- java 打包乱码_Java程序打包之后中文乱码的原因及解决方法
- 荔枝服务器维护,手把手为你讲解win10系统自动维护功能管理的问题.
- 设计模式---观察者模式(C++)
- false在python什么意思_python – `x [False]`在numpy中做什么?
- idea创建maven工程_maven创建父子工程 springboot自动配置
- Ubuntu安装RabbitMQ及RabbitMQ基于使用
- 【渝粤教育】国家开放大学2018年秋季 0053-22T移动通信技术与移动通信设备 参考试题