c#经典三层框架中的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 DAL
{
class SqlHelper
{
//获取字符串
static string constr = ConfigurationManager.ConnectionStrings["JDNew"].ConnectionString;
//创建连接
static SqlConnection conn = new SqlConnection(constr);
/// <summary>
/// //打开连接,关闭连接。
/// </summary>
public static void ConnOpen()
{
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
}
}
public static void ConnClose()
{
if (conn.State == System.Data.ConnectionState.Open)
{
conn.Close();
}
}
/// <summary>
/// 查询
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string sql, params object[] param)
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
for (int i = ; i < param.Length; i++)
{
cmd.Parameters.AddWithValue("@" + i, param[i]);
}
SqlDataReader sdr = cmd.ExecuteReader();
conn.Close();
return sdr;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static bool ExecuteNonQuery(string sql, params object[] param)
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
for (int i = ; i < param.Length; i++)
{
cmd.Parameters.AddWithValue("@" + i, param[i]);
}
int j = cmd.ExecuteNonQuery();
if (j > )
{
conn.Close();
return true;
}
else
{
conn.Close();
return false;
}
}
/// <summary>
/// 【存储过程】
/// </summary>
/// <param name="sql"></param>
/// <param name="commandType"></param>
/// <param name="parameters"></param>
/// <returns></returns>
public static bool ExecuteNonQuery_Pro(string sql, CommandType commandType, SqlParameter[] parameters)
{
SqlCommand cmd = new SqlCommand(sql, conn) { CommandType = commandType };
if (parameters != null)
{
foreach (SqlParameter parameter in parameters)
{
cmd.Parameters.Add(parameter);
}
}
conn.Open();
int count = cmd.ExecuteNonQuery();
//conn.Close();
if (count > )
{
conn.Close();
return true;
}
else
{
conn.Close();
return false;
}
}
/// <summary>
/// 数据集
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static DataTable DataTable(string sql, params object[] param)
{
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
for (int i = ; i < param.Length; i++)
{
sda.SelectCommand.Parameters.AddWithValue("@" + i, param[i]);
}
DataTable dt = new DataTable();
sda.Fill(dt);
conn.Close();
return dt;
}
/// <summary>
/// 第一行第一列
/// </summary>
/// <param name="sql"></param>
/// <param name="param"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, params object[] param)
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
for (int i = ; i < param.Length; i++)
{
cmd.Parameters.AddWithValue("@" + i, param[i]);
}
object obj = cmd.ExecuteScalar();
conn.Close();
return obj;
} /// <summary>
/// 事务处理
/// </summary>
/// <param name="sql"></param>
/// <param name="count"></param>
/// <param name="parm"></param>
/// <returns></returns>
public static bool Transaction(string sql, int count, params object[] parm)
{
ConnOpen();
SqlCommand cmd = new SqlCommand(sql, conn);
if (parm != null)
{
for (int i = ; i < parm.Length; i++)
{
cmd.Parameters.AddWithValue("@" + i, parm[i]);
}
} //开启事务
cmd.Transaction = conn.BeginTransaction();//利用连接对象 获取开启的事务赋值给命令对象 开启事务
int result = ;//定义一个变量来获取 执行成功的个数
try
{
result = cmd.ExecuteNonQuery();//正常执行
}
catch
{
//如果出现异常代表执行没有成功
cmd.Transaction.Rollback();//如果没成功,回到原点
ConnClose();
return false;
}
if (result == count)
{
//说明执行成功了 才可以想数据库中提交数据
cmd.Transaction.Commit();
ConnClose();
return true;
}
else
{
//没有成功 回到原点
cmd.Transaction.Rollback();
ConnClose();
return false;
}
}
/// <summary>
/// 分页,限制起始索引
/// </summary>
/// <param name="sql"></param>
/// <param name="index"></param>
/// <param name="MaxCount"></param>
/// <param name="tablename"></param>
/// <param name="pm"></param>
/// <returns></returns>
public static DataSet DataSet(string sql, int index, int MaxCount, string tablename, params object[] pm)
{
SqlConnection conn = new SqlConnection(constr);
conn.Open();
SqlDataAdapter sda = new SqlDataAdapter(sql, conn);
for (int i = ; i < pm.Length; i++)
{
sda.SelectCommand.Parameters.AddWithValue("@" + i, pm[i]);
}
DataSet ds = new DataSet();
sda.Fill(ds, index, MaxCount, tablename);
conn.Close();
return ds;
} }
}
c#经典三层框架中的SqlHelper帮助类的更多相关文章
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- MVC开发模式与web经典三层框架
MVC:Model(模型)-View(视图)-Controller(控制器) ----是一种软件架构模式,一般把软件系统拆分为这三个层次. 视图View层:前端交互界面或者后端系统界面,它从模型中获取 ...
- Spring框架中,在工具类或者普通Java类中调用service或dao
spring注解的作用: 1.spring作用在类上的注解有@Component.@Responsity.@Service以及@Controller:而@Autowired和@Resource是用来修 ...
- CI框架中,扩展验证码类。
使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...
- SSH框架中新建立实体类后的配置
strut 层 public class Sellauthentication extends ActionSupport { private SellauthenticationService ...
- MVC框架模式和Javaweb经典三层架构
一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(Vie ...
- 学习笔记_Java_day12_设计模式MVC(13).JavaWeb的三层框架(14)
MVC 1. 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Contr ...
- day13(JSTL和自定义标签&MVC模型&javaweb三层框架)
day13 JSTL标签库(重点) 自定义标签(理解) MVC设计模式(重点中的重点) Java三层框架(重点中的重点) JSTL标签库 1 什么是JSTL JSTL是apache对EL表达式的扩 ...
- Javaweb经典三层架构的演变
1.Javaweb经历了三个时期 ①JSP Model1第一代 JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的 ...
随机推荐
- leetcode 813. Largest Sum of Averages
对于一个数组中的数进行分组,取每个组里的平均值进行加和的. 使用动态规划,其中dp[i][k]表示以i为结尾的有k个分组的,那么递推式为: dp[i][k]=dp[j][k-1]+(sum[i]-su ...
- UML第二次作业:类在类图中的表示
类在类图中的表示 一.概览 1.plant UML语法学习小结 2.班级学生管理系统中的 —— “学生” 类的属性.方法 3.类图脚本程序 4.类图示例 二.类图语法学习小结 1.类之间的关系 通过某 ...
- liunx问题集
在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB 1.wget -i -c http://dev ...
- PyCharm设置仿sublime配色__Py版本2018.3.5
效果图: 导出settings 模板为: 1.https://files.cnblogs.com/files/xier/PyCharm_settings.zip 2.https://files.cnb ...
- 学习笔记DL006:特征分解,奇异值分解
特征分解. 整数分解质因素. 特征分解(eigendecomposition),使用最广,矩阵分解一组特征向量.特征值.方阵
- JAVA基础搬运工
1Java线程的6种状态及切换 https://blog.csdn.net/pange1991/article/details/53860651/ 2进程和线程的区别 https://www.cnbl ...
- Git与Bitbucket配合使用
1 , 简介 Git : Git是目前世界上最先进的分布式版本控制系统 Bitbucket : BitBucket 是一家代码托管网站 , 类似与GitHub , 不同的是GitHub更专注于开源 , ...
- zookeeper启动报错处理记录
zookeeper启动时正常,查看状态时出错 处理,通过 ./zkServer.sh status 报错Error contacting service. It is probably not run ...
- pecl 更换对应php版本
转自 https://www.jianshu.com/p/fee58d93e8b1 版本问题 如果我们是通过apt-get或者yum安装的php,现在一般默认的都是php7.0版本. pecl安装过 ...
- 内存泄漏学习案例-1-ArrayList
解决 内存泄漏 于是赶快登陆探测服务器,首先是 top free df 三连,结果还真发现了些异常. 我们的探测进程 CPU 占用率特别高,达到了 900%. 我们的 Java 进程,并不做大量 CP ...