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 ...
随机推荐
- shell的查找与替换
shell中做查找,grep是注定逃不开的. cat file | grep austin 就是在文档中查找Austin所在行. grep和正则表达式匹配之后,查找功能变得异常强大. 这个时候,要保证 ...
- oracle缓存池使用解析
oracle有三种类型的缓存池,分别是default,keep和recycle.默认情况下只会使用default缓存池,另外两种需要额外配置. keep缓存池相当于是一直很热的default缓存池,缓 ...
- 修改mysql默认字符集的方案
mysql默认字符集能否进行修改呢?答案是肯定的,下面就将教您两种修改mysql默认字符集的方法,希望对您学习mysql默认字符集方面能有所启迪. (1) 最简单的修改方法,就是修改mysql的my. ...
- oracle向in语句传入参数查不出数据
在oracle字符串中使用了in,但是查不出数据 string getModel = "select * from TB_YBSH where ID in :ids"; Oracl ...
- 简单谈谈RAID
RAID是“Redundant Array of Independent Disk”的缩写,翻译过来叫做独立磁盘的冗余阵列,其实就是磁盘的存储.访问.备份技术.在谈RAID之前,先简单学习一下存储器的 ...
- Android ImageButton图像灰色边框
灰色边框,是imageButton空间自带的. 第一种解决方案: android:scaleType="fitXY"//这个代码是:拉伸图片(不按比例)以填充的长宽.所以图像最后最 ...
- 一个fork的面试题
前两天有人问了个关于Unix的fork()系统调用的面试题,这个题正好是我大约十年前找工作时某公司问我的一个题,我觉得比较有趣,写篇文章与大家分享一下.这个题是这样的: 题目:请问下面的程序一共输出多 ...
- [转]highcharts图表入门之:如何让highcharts图表自适应浏览器窗体的大小或者页面大小
本文转自: http://jsfiddle.net/vCZ8V/1/ http://www.stepday.com/topic/?740 http://blog.csdn.net/yueritian/ ...
- [转]比NPOI更討喜的Excel元件-EPPlus
本文转自:http://blog.darkthread.net/post-2012-05-12-epplus.aspx 前陣子發表 [潛盾機]將檔案結構匯成Excel文件,從網友佑翔的留言(特此感謝) ...
- WEB安全--CSRF剖析
CSRF攻击:攻击者构造合法的HTTP请求,随后利用用户的身份操作用户帐户的一种攻击方式. 一.CSRF攻击原理CSRF的攻击建立在浏览器与Web服务器的会话中:欺骗用户访问URL.二.CSRF攻击场 ...