C#三层架构通用数据库访问类SQLHerper总结
写入错误日志
写入错误日志
/// <summary>/// 写入错误日志/// </summary>/// <param name="log"></param>private static void WriterLog(string log){FileStream fs = new FileStream("sqlhelper.log", FileMode.Append);StreamWriter sw = new StreamWriter(fs);sw.WriteLine(System.DateTime.Now.ToString()+" "+log);sw.Close();fs.Close();}
封装格式化SQL语句执行各种的方法
封装格式化SQL语句执行各种的方法
#region 封装格式化SQL语句执行各种的方法/// <summary>/// 格式化SQL语句增删改/// </summary>/// <param name="sql">sql语句</param>/// <returns>1:执行成功 ;-1执行失败</returns>public static int Update(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql,conn);try{conn.Open();return cmd.ExecuteNonQuery();}catch (Exception ex){//将错误信息写入到错误日志中WriterLog("在执行 public static int Update(string sql)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception( ex.Message);}finally{conn.Close();}}/// <summary>/// 格式化SQL语句查找/// </summary>/// <param name="sql">sql语句</param>/// <returns>返回sqlDataReader对象</returns>public static SqlDataReader GetDataReader(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();return cmd.ExecuteReader(CommandBehavior.CloseConnection);}catch (Exception ex){WriterLog("在执行public static SqlDataReader GetDataReader(string sql)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception( ex.Message);}}/// <summary>/// 格式化SQL语句通过DataSet查询/// </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 sda = new SqlDataAdapter(cmd);DataSet da = new DataSet();try{conn.Open();sda.Fill(da);return da;}catch (Exception ex){WriterLog("在执行public static DataSet GetDataSet(string sql)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception( ex.Message);}finally{conn.Close();}}/// <summary>/// 格式化SQL语句获取单行信息/// </summary>/// <param name="sql"></param>/// <returns>返回单行信息,该信息为Object类型</returns>public static object GetSingleReslut(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();return cmd.ExecuteScalar();}catch (Exception ex){//将错误信息写入到错误日志中WriterLog("在执行 public static object ReaderSingRow(string sql)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}finally{conn.Close();}}#endregion
封装带参SQL语句执行各种的方法
封装带参SQL语句执行各种的方法
#region 封装带参SQL语句执行各种的方法/// <summary>/// 封装带参SQL语句增删改/// </summary>/// <param name="SpName">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns>1:执行成功 ;-1执行失败</returns>public static int Update(string sql,SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();cmd.Parameters.AddRange(param);return cmd.ExecuteNonQuery();}catch (Exception ex){//将错误信息写入到错误日志中WriterLog("在执行 public static int Update(string sql,SqlParameter[]param)时出现错误,错误信息:" + ex.Message.ToString());//throw new Exception(ex.Message);throw ex;}finally{conn.Close();}}/// <summary>/// 封装带参SQL语句查找/// </summary>/// <param name="SpName">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns>返回sqlDataReader对象</returns>public static SqlDataReader GetDataReader(string sql,SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();cmd.Parameters.AddRange(param);return cmd.ExecuteReader(CommandBehavior.CloseConnection);}catch (Exception ex){WriterLog("在执行public static SqlDataReader GetDataReader(string sql,SqlParameter[]param)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}}/// <summary>/// 封装带参SQL语句通过DataSet查询/// </summary>/// <param name="sql">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns></returns>public static DataSet GetDataSet(string sql,SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);SqlDataAdapter sda = new SqlDataAdapter(cmd);DataSet da = new DataSet();try{conn.Open();cmd.Parameters.AddRange(param);sda.Fill(da);return da;}catch (Exception ex){WriterLog("在执行public static DataSet GetDataSet(string sql,SqlParameter[]param)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}finally{conn.Close();}}/// <summary>/// 封装带参SQL语句获取单行信息/// </summary>/// <param name="spName">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns>返回单行信息,该信息为Object类型</returns>public static object GetSingleReslut(string sql,SqlParameter[]param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();cmd.Parameters.AddRange(param);return cmd.ExecuteScalar();}catch (Exception ex){//将错误信息写入到错误日志中WriterLog("在执行 public static object ReaderSingRow(string sql,SqlParameter[]param)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}finally{conn.Close();}}/// <summary>/// 启动事务提交多条带参数的SQL语句/// </summary>/// <param name="Minsql">主表SQL语句</param>/// <param name="Mainparam">主表参数</param>/// <param name="detailSql">明细表SQL语句</param>/// <param name="detailparam">明细表SQL语句对应的参数数组集合</param>/// <returns>true:执行成功</returns>public static bool UpdateByTran(string Minsql, SqlParameter[] Mainparam,string detailSql,List<SqlParameter[]>detailparam){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;try{conn.Open();//开启事务cmd.Transaction = conn.BeginTransaction();if(Minsql!=null&&Minsql.Length!=0){cmd.CommandText = Minsql;cmd.Parameters.AddRange(Mainparam);cmd.ExecuteNonQuery();}cmd.CommandText = detailSql;foreach (SqlParameter[] param in detailparam){cmd.Parameters.Clear();cmd.Parameters.AddRange(param);cmd.ExecuteNonQuery();}//提交事务cmd.Transaction.Commit();return true;}catch (Exception ex){if (cmd.Transaction != null){cmd.Transaction.Rollback();}//将错误信息写入到错误日志中WriterLog("在执行UpdateByTran(string Minsql, SqlParameter[] Mainparam,string detailSql,List<SqlParameter[]>detailparam)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}finally{if(cmd.Transaction!=null){cmd.Transaction = null;}conn.Close();}}#endregion
封装存储过程SQL语句执行各种的方法
封装存储过程SQL语句执行各种的方法
#region 封装存储过程SQL语句执行各种的方法/// <summary>/// 封装存储过程SQL语句增删改/// </summary>/// <param name="spName">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns>1:执行成功 ;-1执行失败</returns>public static int UpdateByProcedure(string spName, SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(spName, conn);try{conn.Open();cmd.CommandType = CommandType.StoredProcedure;cmd.Parameters.AddRange(param);return cmd.ExecuteNonQuery();}catch (Exception ex){//将错误信息写入到错误日志中WriterLog("在执行UpdateByProcedure(string spName, SqlParameter[] param)时出现错误,错误信息:" + ex.Message.ToString());throw ex;}finally{conn.Close();}}/// <summary>/// 封装存储过程SQL语句查找/// </summary>/// <param name="spName">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns>返回sqlDataReader对象</returns>public static SqlDataReader GetDataReaderByProcedure(string spName, SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(spName, conn);try{conn.Open();cmd.Parameters.AddRange(param);cmd.CommandType = CommandType.StoredProcedure;return cmd.ExecuteReader(CommandBehavior.CloseConnection);}catch (Exception ex){WriterLog("在执行public static SqlDataReader GetDataReaderByProcedure(string spName, SqlParameter[] param)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}}/// <summary>/// 封装存储过程SQL语句获取单行信息/// </summary>/// <param name="spName">sql语句</param>/// <param name="param">Sql参数数组</param>/// <returns>返回单行信息,该信息为Object类型</returns>public static object GetSingleReslutByProcedure(string spName, SqlParameter[] param){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(spName, conn);try{conn.Open();cmd.Parameters.AddRange(param);cmd.CommandType = CommandType.StoredProcedure;return cmd.ExecuteScalar();}catch (Exception ex){//将错误信息写入到错误日志中WriterLog("在执行 public static object GetSingleReslutByProcedure(string spName, SqlParameter[] param)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}finally{conn.Close();}}/// <summary>/// 启用事务调用带参数的存储过程/// </summary>/// <param name="ProdetrueName">存储过程名称</param>/// <param name="paramArray">存储过程参数数组集合</param>/// <returns>返回结果 True:执行成功</returns>public static bool UpdateByTran( string ProdetrueName, List<SqlParameter[]> paramArray){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand();cmd.Connection = conn;try{conn.Open();cmd.CommandType = CommandType.StoredProcedure;//开启事务cmd.Transaction = conn.BeginTransaction();cmd.CommandText = ProdetrueName;foreach (SqlParameter[] param in paramArray){cmd.Parameters.Clear();cmd.Parameters.AddRange(param);cmd.ExecuteNonQuery();}//提交事务cmd.Transaction.Commit();return true;}catch (Exception ex){if (cmd.Transaction != null){cmd.Transaction.Rollback();}//将错误信息写入到错误日志中WriterLog("在执行 public static bool UpdateByTran( string ProdetrueName, List<SqlParameter[]> paramArray)时出现错误,错误信息:" + ex.Message.ToString());throw new Exception(ex.Message);}finally{if (cmd.Transaction != null){cmd.Transaction = null;}conn.Close();}} #endregion
C#三层架构通用数据库访问类SQLHerper总结相关推荐
- 简单程序所需要的简单 asp.net通用数据库访问类
简单程序不需要分层,各页面共用相同的通用数据库访问类即可 using System; using System.Data; using System.Data.SqlClient; namespa ...
- DataAccess通用数据库访问类,简单易用,功能强悍
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...
- 使用设计模式构建通用数据库访问类
在应用程序的设计中,数据库的访问是非常重要的,我们通常需要将对数据库的访问集中起来,以保证良好的封装性和可维护性.在.Net中,数据库的访问,对于微软自家的SqlServer和其他数据库(支持OleD ...
- 【ASP.NET开发】ASP.NET对SQLServer的通用数据库访问类
怎么说呢,作为程序员,我们明天都应该学习新的知识. 以前我在对数据库进行操作的时候都是在同一页面对数据库进行操作.这样的话,就是操作繁琐,而且需要重复的书写对数据库操作的代码,这样不仅浪费了很多的时间 ...
- 仓储模式和传统三层架构多数据库实现
仓储模式:通用方法 public class DepartmentRepository : RepositoryBase<DepartmentEntity>, IRepositoryBas ...
- 浅谈三层架构中的实体类(C#)
最近因为三层架构中的实体类,引发了不少小问题,下面列举一下,谈谈自己的感想. 本文所指的实体类仅限于三层中的实体类,即数据库表的映射. 一.为什么要用实体类? | 使程序简洁易懂,便于维护. | ...
- ASP.NET2.0通用数据访问类
.NET框架自带的数据提供器包括SQLServer(System.Data.SqlClient).Oracle (System.Data.Oracleclient).OLEDB(System.D ...
- SqlHelper数据库访问类
参考上一篇:数据库连接配置app.config 写一个通用的数据库访问类. public class SqlHelper //数据库连接类 {//获取数据库连接字符串,其属于静态变量且只读,项目中所有 ...
- C#数据库教程7-ADO.NET三层架构和数据库DBNull问题
目录 一.数据库中创建表 1.创建数据表T_Person 2.向数据表T_Person中插入数据 3.查看插入的数据 二. 创建C# Winform工程 1.添加引用 2.编辑数据库连接配置文件 3. ...
- 企业级应用架构(二)三层架构之数据访问层的封装与抽象
在上一篇我们知道,要解除BLL对DAL的依赖,我们就必须抽象出DAL层的接口,同时基于DAL的数据访问技术很多,如EF,ADO.NET,LINQ TO SQL,因此,我们的数据访问层必须对这些技术提供 ...
最新文章
- [导入][转]常用CSS缩写语法总结
- 压缩文件夹_怎样压缩文件夹并发送
- nginx中的rewrite用法及实例
- jQuery成为微软.NET开发工具的一部分了
- MySQL导出数据遇到secure-file-priv问题的解决方法
- 永久白嫖!发现官方漏洞,希望不要被封杀!
- 疫情之下困难的设备维护工作该如何解决? ​
- SpringCloud大项目最快速的排查问题的思路
- android系统源代码单独编译应用程序
- 批量合并txt文件中的数据
- 微软雅黑的字体设置css,css如何设置字体为微软雅黑
- ppt滚动动画随机选题
- PostgreSQL中with和without time zone两者有什么区别
- 【方向盘】2021年JVM生态报告:Java 11使用率超Java 8
- Golang方差算法
- 【web前端】前端性能优化指南,还不来看看?
- 使用xadmin搜索search_fields报错:Related Field got invalid lookup: icontains
- linux lilo_LInux装箱商(LILO)| 免费和开源软件
- 假证假章猖狂不止 公章伪造的沉疴爱签电子印章来治愈
- linux 统计每个ip数量,日子IP统计
热门文章
- 【单目标优化求解】基于matlab改进的遗传算法求解单目标优化问题【含Matlab源码 1834期】
- 【优化覆盖】基于matlab粒子群算法求解传感器覆盖优化问题【含Matlab源码 1493期】
- 【图像分割】基于K-means聚类算法图像分割【含Matlab源码 1476期】
- 【语音识别】基于matlab GUI HMM中文语音识别【含Matlab源码 1385期】
- 【图像加密】基于matlab混沌算法图像加密解密【含Matlab源码 1218期】
- 【优化预测】基于matlab贝叶斯网络优化LSTM预测【含Matlab源码 1158期】
- 波普尔心智格列高利心智_心智与人工智能理论
- java 三个点_Java Object定义三个点如何实现 Java Object定义三个点实现代码
- 2017年第八届 蓝桥杯 java B组
- win10+Ubuntu17.10双系统安装(惠普台式机)