Ado.net 通用访问类
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 通用访问类的更多相关文章
- 针对SQLServer数据库的通用访问类
Web.config中代码 <configuration> <connectionStrings> <add name="connString" co ...
- ADO.NET 数据访问类查询、属性扩展
今天,我首先在之前所做的人员管理系统的基础上,利用数据访问类进行了所有人员信息的查询. 主程序代码: List<Users> Ulist = new UsersData().Select( ...
- SQLServer数据库通用访问类
private static string connString=ConfigurationManager.ConnStrings["connString"].ToString() ...
- C#:数据库通用访问类 SqlHelper
using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...
- 一个通用数据库访问类(C#,SqlClient)
本文转自:http://www.7139.com/jsxy/cxsj/c/200607/114291.html使用ADO.NET时,每次数据库操作都要设置connection属性.建立connecti ...
- DataAccess通用数据库访问类,简单易用,功能强悍
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...
- C# 通用数据访问类(SqlHelper)
[转]C# 通用数据访问类(SqlHelper) 注:本文转自http://www.tzwhx.com/newOperate/html/3/31/312/13080.htmlVisual C# 动态操 ...
- ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄) System.Data—— 所有的一般数据访问类 S(转载)
ADO.NET(一) 空间 ADO.NET结构 命名空间(车延禄)System.Data—— 所有的一般数据访问类System.Data.Common—— 各个数据提供程序共享(或重写)的类Sys ...
- ado.net 实体类_数据访问类
实体类: using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ...
随机推荐
- Eclipse++Xdebug开发php环境配置
一.php环境配置: 本次使用了appserv 2.5.10集成安装包.具体版本如下,安装后php版本是5.2.6 vc6,apache版本2.2 安装完成后,php配置文件在c:\windows目录 ...
- 在ubuntu14.04上配置cuda_caffe_cudnn_anaconda_digits
参考网上的很多网站,以这篇为主:http://blog.csdn.net/yhl_leo/article/details/50961542 这篇算是自己对caffe学习的一个总结系列的开头.首先因为c ...
- [分享]一个String工具类,也许你的项目中会用得到
每次做项目都会遇到字符串的处理,每次都会去写一个StringUtil,完成一些功能. 但其实每次要的功能都差不多: 1.判断类(包括NULL和空串.是否是空白字符串等) 2.默认值 3.去空白(tri ...
- Add Binary
Add Binary https://leetcode.com/problems/add-binary/ Given two binary strings, return their sum (als ...
- [部署]CentOS配置IP地址
环境 虚拟机:VMWare10.0.1 build-1379776 操作系统:CentOS7 64位 简介 CentOS7最小化安装(Minimal)时,是不带ifconfig指令的,该指令在net- ...
- excel if判断时间段早晚班
=IF(OR(HOUR(B3)={9,10,11,12,13,14,15,16,17,18}),"早班","晚班")
- Hadoop Yarn core concepts
The fundamental idea of YARN is to split the two major responsibilities of the JobTracker—that is, r ...
- 解决WordPress后台安装主题、插件图片不显示的问题
今天搭建wordpress发现现在主题的时候预览图片都没有了,于是搜索了一下,发现下面的这个方法确实管用,于是转载收藏. 有在WordPress后台安装主题.插件的小伙伴可能会遇到主题.插件图片不显示 ...
- HDU 5084 HeHe --找规律
题意: 给出矩阵M,求M*M矩阵的r行c列的数,每个查询跟前一个查询的结果有关. 解法: 观察该矩阵得知,令ans = M*M,则 ans[x][y] = (n-1-x行的每个值)*(n-1+y列的每 ...
- MyBatis学习总结(一)
一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以 ...