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. HDU - 6203:ping ping ping (DFS序 贪心)

    pro:给定N+1个点的树,有M对关键点,现在让你破坏最少的点,使得M对关键点不连通. sol:贪心,我们把M对点按照LCA深度排序,每次破坏LCA. 如果一对点(u,v,lca),u-lca-v有点 ...

  2. vue 动态循环出的多个select 不能重复选择相同的数据

    看图说话 HTML: JS:        1)  2) 3) 有更好的方法可以相互学习.

  3. Arch Linux 硬盘引导-联网安装

    Arch Linux 硬盘引导-联网安装 ============https://www.archlinux.org/https://wiki.archlinux.org/https://wiki.a ...

  4. 个性化自己的DOS窗口

    就是为了好看吧,感觉没啥大用 ============= 首先创建一个文本,写下如下命令 @echo off color D echo ======================== echo == ...

  5. Go 字符串连接+=与strings.Join性能对比

    Go字符串连接 对于字符串的连接大致有两种方式: 1.通过+号连接 func StrPlus1(a []string) string { var s, sep string for i := 0; i ...

  6. Django学习笔记之视图高级-HTTP请求与响应

    Django限制请求method 常用的请求method GET请求 GET请求一般用来向服务器索取数据,但不会向服务器提交数据,不会对服务器的状态进行更改.比如向服务器获取某篇文章的详情. POST ...

  7. 05-树8 File Transfer (25 分)

    We have a network of computers and a list of bi-directional connections. Each of these connections a ...

  8. Go 知识点

    必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main. package main表示一个可独立执行的程序,每个 Go 应用程序都包含一个名为 main 的包. main 函 ...

  9. Jquery 一个页面单个倒计时 实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. .NET微信开发Charles突破微信授权,获取任意微信网页源代码(含Https)

    简介 Charles其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的.该软件是用Java写的,能够在Windows,Mac,Linux上使用.开发iOS都在 ...