public class DbHelperSQL
{
private static string connString = ConfigurationManager.ConnectionStrings["SqlDataSource"].ToString(); #region 获取一个连接通道
/// <summary>
/// 获取一个连接通道
/// </summary>
/// <returns></returns>
public static SqlConnection CreateConn()
{
return new SqlConnection(connString);
}
#endregion #region 获取数据源
/// <summary>
/// 获取数据源
/// </summary>
/// <param name="sql"></param>
/// <param name="parms"></param>
/// <returns></returns>
public static DataSet Query(string sql, CommandType cmdType = CommandType.Text, params SqlParameter[] parms)
{
DataSet dt = new DataSet();
using (SqlConnection conn = CreateConn())
{
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = cmdType;
if (parms != null)
{
cmd.Parameters.AddRange(parms);
}
da.SelectCommand = cmd;
da.Fill(dt);
} return dt;
}
#endregion #region 执行事务
/// <summary>
/// 执行事务
/// </summary>
/// <param name="sql">存储过程名</param>
/// <param name="parmsList">每个存储过程中所包含的参数</param>
/// <returns></returns>
public static int ExecTran(string sql, List<SqlParameter[]> parmsList,CommandType cmdType = CommandType.Text)
{
int row = ;
using (SqlConnection conn = CreateConn())
{
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand(sql, conn, tran);
cmd.CommandType = cmdType;
if (parmsList != null && parmsList.Count>)
{
foreach (SqlParameter[] parms in parmsList)
{
cmd.Parameters.Clear();
if (parms != null)
{
cmd.Parameters.AddRange(parms);
}
try
{
row += cmd.ExecuteNonQuery();
}
catch
{
tran.Rollback();
return ;
}
}
tran.Commit();
}
}
return row;
}
#endregion #region 执行包含主表和子表的事务
/// <summary>
/// 执行包含主表和子表的事务
/// </summary>
/// <param name="MainSql">主表存储过程</param>
/// <param name="MainParmsList">主表存储过程包含的参数</param>
/// <param name="ChildSql">子表存储过程</param>
/// <param name="ChildParmsList"></param>
/// <returns></returns>
public int ExecTran(string MainSql, CommandType cmdType, List<SqlParameter[]> MainParmsList, string ChildSql, List<SqlParameter[]> ChildParmsList)
{
int row = ;
using (SqlConnection conn = CreateConn())
{
conn.Open();
SqlTransaction tran = conn.BeginTransaction();
SqlCommand cmd = new SqlCommand(MainSql, conn, tran);
cmd.CommandType = cmdType;
if (MainParmsList != null)
{
foreach (SqlParameter[] parms in MainParmsList)
{
cmd.Parameters.Clear();
if (parms != null)
{
cmd.Parameters.AddRange(parms);
}
try
{
row = cmd.ExecuteNonQuery();
}
catch
{
tran.Rollback();
return ;
}
}
}
cmd.CommandText = ChildSql;
if (ChildParmsList != null)
{
foreach (SqlParameter[] parm in ChildParmsList)
{
cmd.Parameters.Clear();
if (parm != null)
{
cmd.Parameters.AddRange(parm);
}
try
{
row = cmd.ExecuteNonQuery();
}
catch
{
tran.Rollback();
return ;
}
}
tran.Commit();
}
}
return row;
}
#endregion #region 执行Sql语句
/// <summary>
/// 执行Sql语句
/// </summary>
/// <param name="sql"></param>
/// <param name="parms"></param>
/// <returns></returns>
public static int ExecuteSql(string sql, CommandType cmdType = CommandType.Text, params SqlParameter[] parms)
{
int row = ;
using (SqlConnection conn = CreateConn())
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = cmdType;
if (parms != null)
{
cmd.Parameters.AddRange(parms);
}
row = cmd.ExecuteNonQuery();
}
return row;
}
#endregion #region 获取首行首列
/// <summary>
/// 获取首行首列
/// </summary>
/// <param name="sql"></param>
/// <param name="parms"></param>
/// <returns></returns>
public static object GetSingle(string sql, CommandType cmdType= CommandType.Text, params SqlParameter[] parms)
{
using (SqlConnection conn = CreateConn())
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
cmd.CommandType = cmdType;
if (parms != null)
{
cmd.Parameters.AddRange(parms);
}
return cmd.ExecuteScalar();
}
}
#endregion
}

Ado.net 通用访问类的更多相关文章

  1. 针对SQLServer数据库的通用访问类

    Web.config中代码 <configuration> <connectionStrings> <add name="connString" co ...

  2. ADO.NET 数据访问类查询、属性扩展

    今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询. 主程序代码: List<Users> Ulist = new UsersData().Select( ...

  3. SQLServer数据库通用访问类

    private static string connString=ConfigurationManager.ConnStrings["connString"].ToString() ...

  4. C#:数据库通用访问类 SqlHelper

    using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...

  5. 一个通用数据库访问类(C#,SqlClient)

    本文转自:http://www.7139.com/jsxy/cxsj/c/200607/114291.html使用ADO.NET时,每次数据库操作都要设置connection属性.建立connecti ...

  6. DataAccess通用数据库访问类,简单易用,功能强悍

    以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...

  7. C# 通用数据访问类(SqlHelper)

    [转]C# 通用数据访问类(SqlHelper) 注:本文转自http://www.tzwhx.com/newOperate/html/3/31/312/13080.htmlVisual C# 动态操 ...

  8. ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄) System.Data—— 所有的一般数据访问类 S(转载)

    ADO.NET(一) 空间   ADO.NET结构 命名空间(车延禄)System.Data—— 所有的一般数据访问类System.Data.Common—— 各个数据提供程序共享(或重写)的类Sys ...

  9. ado.net 实体类_数据访问类

    实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...

随机推荐

  1. js实现(全选)多选按钮

    第一种,全部选中: <html> <head> <title>复选框checked属性</title> <script language=&quo ...

  2. 一. Linux 常用命令总结

    1. linux 基础命令 who, which, basename, dirname, echo, type, hash, whatis, makewhatis, man, info, help,  ...

  3. 17110 Divisible(basic)

    17110 Divisible 时间限制:1000MS  内存限制:65535K 题型: 编程题   语言: 无限制 Description Given n + m integers, I1,I2,. ...

  4. windows 进程管理器中的内存是什么意思?

    *内存 - 工作集:私人工作集中的内存数量与进程正在使用且可以由其他进程共享的内存数量的总和. *内存 - 峰值工作集:进程所使用的工作集内存的最大数量. *内存 - 工作集增量:进程所使用的工作集内 ...

  5. C# url信息获取

    假设当前页完整地址是:http://www.360jht.com/game/bbb.aspx?id=5&name=kelli "http://"是协议名 "www ...

  6. Begin to record my bologs....

    after work for almost two years, I have realize the truth notes can help a lot for us. avoiding my l ...

  7. php 利用activeMq+stomp实现消息队列

    php 利用activeMq+stomp实现消息队列 一.activeMq概述 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J ...

  8. (转)u3d设计模式

    Unity3d中UI开发的MVC模式 ,和游戏开发的其他模块类似,UI一般需要通过多次迭代开发,直到用户体验近似OK.另外至关重要的是, 我们想尽快加速迭代的过程.使用MVC模式来进行设计,已经被业界 ...

  9. docker containerd shim分析

    // containerd-shim is a small shim that sits in front of a runtime implementation that allows it to ...

  10. python中*args和**args的不同

    上一段代码,大家感受一下 def test_param(*args): print(args) def test_param2(**args): print(args) test_param('tes ...