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页面,所有的 ...
随机推荐
- 实现react路由动态加载的组件
import React, { Component } from 'react'; import Loading from '../../base/nc_Loading'; /* * date: 20 ...
- css3实现条纹以及方格斜纹背景
CSS代码: .stripes { height: 250px; width: 375px; float: left; margin: 10px; -webkit-background-size: 5 ...
- day09 函数学习
内容详细 1.函数 1.1.面向过程: 可读性差/可重用差 1.2.面向对象:
- Favorite Donut(HDU 5442)最小表示法+二分
题目给出一个字符串,由a~z表示甜度,随字典序增大,字符串首尾相连形成一个圈,要求从一个位置开始字典序最大的字符串,输出位置以及是顺时针还是逆时针表示.顺时针用0表示,逆时针用1表示. 此题只需要查找 ...
- ubuntu18安装网易云音乐
1.打开ubuntu软件搜索网易云安装 2.解决ubuntu18.04下网易云音乐打不开的问题 修改/etc/sudoers文件 sudo vi /etc/sudoers 在最后增加一行: usern ...
- 初探OpenCL之Mac OS上的hello world示例
了解了深度学习的崛起,引起了目前OpenCL的需求,大致了解一下. 相关内容:http://blog.csdn.net/leonwei/article/details/8880012 本身OpenCL ...
- 科学计算和可视化(numpy及matplotlib学习笔记)
网上学习资料:https://2d.hep.com.cn/1865445/9 numpy库内容: 函数 描述 np.array([x,y,z],dtype=int) 从Python列表和元组创造数组 ...
- H3C_IRF
1.IRF的优点: 跨设备负载均衡 规避环路 强大的网络扩展能力 带宽/可靠性增加 2.IRF域编号存在的意义: 域是一个逻辑概念,一个 IRF 对应一个 IRF 域 如果IRF 1 和IRF 2 之 ...
- Pagedown learning notes
Pagedown Links Google wiki page Download Markdown.Converter.js var converter = new Markdown.Converte ...
- c/c++的常用函数和STL使用
一个超好用的c++网站:http://www.cplusplus.com/reference/string/string/erase/ 一.函数头中包含的函数 1.qsort函数对数组.结构体等进行排 ...