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帮助类的更多相关文章

  1. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  2. MVC开发模式与web经典三层框架

    MVC:Model(模型)-View(视图)-Controller(控制器) ----是一种软件架构模式,一般把软件系统拆分为这三个层次. 视图View层:前端交互界面或者后端系统界面,它从模型中获取 ...

  3. Spring框架中,在工具类或者普通Java类中调用service或dao

    spring注解的作用: 1.spring作用在类上的注解有@Component.@Responsity.@Service以及@Controller:而@Autowired和@Resource是用来修 ...

  4. CI框架中,扩展验证码类。

    使用CI框架的朋友,应该都知道CI框架的的验证码辅助函数,不太好用.它需要写入到数据库中,然后再进行比对. 大家在实际项目中,好像不会这样去使用,因为会对数据库造成一定的压力. 所以,我们还是利用se ...

  5. SSH框架中新建立实体类后的配置

    strut 层 public class Sellauthentication extends ActionSupport {    private SellauthenticationService ...

  6. MVC框架模式和Javaweb经典三层架构

    一.MVC设计模式 1.MVC的概念 首先我们需要知道MVC模式并不是javaweb项目中独有的,MVC是一种软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(Vie ...

  7. 学习笔记_Java_day12_设计模式MVC(13).JavaWeb的三层框架(14)

    MVC 1. 什么是MVC MVC模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控制器(Contr ...

  8. day13(JSTL和自定义标签&MVC模型&javaweb三层框架)

    day13 JSTL标签库(重点) 自定义标签(理解) MVC设计模式(重点中的重点) Java三层框架(重点中的重点) JSTL标签库   1 什么是JSTL JSTL是apache对EL表达式的扩 ...

  9. Javaweb经典三层架构的演变

    1.Javaweb经历了三个时期 ①JSP Model1第一代 JSP Model1是JavaWeb早期的模型,它适合小型Web项目,开发成本低!Model1第一代时期,服务器端只有JSP页面,所有的 ...

随机推荐

  1. border边框属性

    边框属性: 边框宽度(border-width):thin.medium.thick.长度值 边框颜色(border-color):颜色.transparent(透明) 边框样式(border-sty ...

  2. pycrypto安装各种方法试了,最后这种最快速最方便

    需要安装vs,然后按照如下步骤 这个不是在cmd中执行 而是在vs的命令行中执行

  3. JMeter中Ultimate Thread Group插件使用

    JMeter下载地址:  http://jmeter.apache.org/Ultimate Thread Group插件下载地址: https://jmeter-plugins.org/get/ 一 ...

  4. pdf.js 使用实例(app直接预览pdf格式的文档)

    pdf.js可以实现在html下直接浏览pdf文档,是一款开源的pdf文档读取解析插件 pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,,一个负责API解析,一个负责 ...

  5. PHP全局变量,超全局变量

    php中有许多超全局变量,这意味着它们在一个脚本的全部作用域中都可用.在函数或方法中无需执行 global $variable; 就可以访问它们. 这些超全局变量是: $GLOBALS    引用全局 ...

  6. Spring(转载一)

    学习过Spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  7. react安装

    1. npm install -g create-react-app 2. create-react-app my-app 3. cd my-app npm start 4.浏览器打开  http:/ ...

  8. Python error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)解决方案

    error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it - 解决方案 python通过pi ...

  9. 给jumpserver双机配置glusterfs共享复制卷

    为什么要使用glusterfs呢. 本身Haproxy+Keepalived对jumpserver进行了负载均衡和反向代理.但是真实的视频只会存储在一个节点上 否则播放视频的时候会出现找不到的情况 为 ...

  10. Django学习笔记之视图高级-类视图

    类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...