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. 问题解决——使用CriticalSection后 0xXXXXXXXX处最可能的异常: 0xC0000005: 写入位置 0x00000014 时发生访问冲突

    ================声明===================== 本文原创,转载请保持文章的完整性(含本声明),并显要的著名作者和出处. 本文链接:http://blog.csdn.ne ...

  2. python中列表和元组以及字符串的操作

    python中列表是非常好用的.不过有一些使用小细节还需要注意一下. tag[32:-4] 从index为32到tag的倒数第4个字符. 如果索引为32的值在倒数第4个字符的右边,那么将输出为空.只要 ...

  3. [转][原]openstack-kilo--issue(六)kilo版openstack的dashboard在session超时后重新登录报错解决办法

    http://blog.csdn.net/wylfengyujiancheng/article/details/50523373?locationNum=1&fps=1 1.现象描述: kil ...

  4. C++杂谈(一)const限定符与const指针

    const限定符 c++有了新的const关键字,用来定义常变量,可以替C语言中的#define.关于const限定符,有以下需要注意: 1.创建后值不再改变 2.作用范围在文件内有效 3.添加ext ...

  5. html之大白

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  6. [ubuntu]中文用户目录路径改英文

    ubuntu中文版home文件夹里用目录的"桌面"."图片"."视频"虽然对于中文使用者看起来舒适直观,但是对于bash使用来说简直是障碍. ...

  7. [树莓派]安装node环境

    本文并非node的编译安装,据说这要花很长时间,所以一开始我就是拒绝的.本文展示的是如何部署ndoe的编译好的执行文件. node的官网上下载目录里本身就有针对arm的编译好的执行文件.地址在这里:h ...

  8. 分析递归式 Solving Recurrences------GeeksforGeeks 翻译

    在上一章中我们讨论了如何分析循环语句.在现实中,有很多算法是递归的,当我们分析这些算法的时候我们要找到他们的的递归关系.例如归并排序,为了排序一个数组,我们把它平均分为两份然后再重复平分的步骤.最后我 ...

  9. Redis安装,mongodb安装,hbase安装,cassandra安装,mysql安装,zookeeper安装,kafka安装,storm安装大数据软件安装部署百科全书

    伟大的程序员版权所有,转载请注明:http://www.lenggirl.com/bigdata/server-sofeware-install.html 一.安装mongodb 官网下载包mongo ...

  10. NGUI国际化 多语言

    相关组件 NGUI的本地化操作相关的组件 Localization UILocalize Language Selection 主要部分 在需要本地化的UILabel上绑定UILocalize,填写K ...