1. public class DbHelperSQL
  2. {
  3. private static string connString = ConfigurationManager.ConnectionStrings["SqlDataSource"].ToString();
  4.  
  5. #region 获取一个连接通道
  6. /// <summary>
  7. /// 获取一个连接通道
  8. /// </summary>
  9. /// <returns></returns>
  10. public static SqlConnection CreateConn()
  11. {
  12. return new SqlConnection(connString);
  13. }
  14. #endregion
  15.  
  16. #region 获取数据源
  17. /// <summary>
  18. /// 获取数据源
  19. /// </summary>
  20. /// <param name="sql"></param>
  21. /// <param name="parms"></param>
  22. /// <returns></returns>
  23. public static DataSet Query(string sql, CommandType cmdType = CommandType.Text, params SqlParameter[] parms)
  24. {
  25. DataSet dt = new DataSet();
  26. using (SqlConnection conn = CreateConn())
  27. {
  28. SqlDataAdapter da = new SqlDataAdapter();
  29. SqlCommand cmd = new SqlCommand(sql, conn);
  30. cmd.CommandType = cmdType;
  31. if (parms != null)
  32. {
  33. cmd.Parameters.AddRange(parms);
  34. }
  35. da.SelectCommand = cmd;
  36. da.Fill(dt);
  37. }
  38.  
  39. return dt;
  40. }
  41. #endregion
  42.  
  43. #region 执行事务
  44. /// <summary>
  45. /// 执行事务
  46. /// </summary>
  47. /// <param name="sql">存储过程名</param>
  48. /// <param name="parmsList">每个存储过程中所包含的参数</param>
  49. /// <returns></returns>
  50. public static int ExecTran(string sql, List<SqlParameter[]> parmsList,CommandType cmdType = CommandType.Text)
  51. {
  52. int row = ;
  53. using (SqlConnection conn = CreateConn())
  54. {
  55. conn.Open();
  56. SqlTransaction tran = conn.BeginTransaction();
  57. SqlCommand cmd = new SqlCommand(sql, conn, tran);
  58. cmd.CommandType = cmdType;
  59. if (parmsList != null && parmsList.Count>)
  60. {
  61. foreach (SqlParameter[] parms in parmsList)
  62. {
  63. cmd.Parameters.Clear();
  64. if (parms != null)
  65. {
  66. cmd.Parameters.AddRange(parms);
  67. }
  68. try
  69. {
  70. row += cmd.ExecuteNonQuery();
  71. }
  72. catch
  73. {
  74. tran.Rollback();
  75. return ;
  76. }
  77. }
  78. tran.Commit();
  79. }
  80. }
  81. return row;
  82. }
  83. #endregion
  84.  
  85. #region 执行包含主表和子表的事务
  86. /// <summary>
  87. /// 执行包含主表和子表的事务
  88. /// </summary>
  89. /// <param name="MainSql">主表存储过程</param>
  90. /// <param name="MainParmsList">主表存储过程包含的参数</param>
  91. /// <param name="ChildSql">子表存储过程</param>
  92. /// <param name="ChildParmsList"></param>
  93. /// <returns></returns>
  94. public int ExecTran(string MainSql, CommandType cmdType, List<SqlParameter[]> MainParmsList, string ChildSql, List<SqlParameter[]> ChildParmsList)
  95. {
  96. int row = ;
  97. using (SqlConnection conn = CreateConn())
  98. {
  99. conn.Open();
  100. SqlTransaction tran = conn.BeginTransaction();
  101. SqlCommand cmd = new SqlCommand(MainSql, conn, tran);
  102. cmd.CommandType = cmdType;
  103. if (MainParmsList != null)
  104. {
  105. foreach (SqlParameter[] parms in MainParmsList)
  106. {
  107. cmd.Parameters.Clear();
  108. if (parms != null)
  109. {
  110. cmd.Parameters.AddRange(parms);
  111. }
  112. try
  113. {
  114. row = cmd.ExecuteNonQuery();
  115. }
  116. catch
  117. {
  118. tran.Rollback();
  119. return ;
  120. }
  121. }
  122. }
  123. cmd.CommandText = ChildSql;
  124. if (ChildParmsList != null)
  125. {
  126. foreach (SqlParameter[] parm in ChildParmsList)
  127. {
  128. cmd.Parameters.Clear();
  129. if (parm != null)
  130. {
  131. cmd.Parameters.AddRange(parm);
  132. }
  133. try
  134. {
  135. row = cmd.ExecuteNonQuery();
  136. }
  137. catch
  138. {
  139. tran.Rollback();
  140. return ;
  141. }
  142. }
  143. tran.Commit();
  144. }
  145. }
  146. return row;
  147. }
  148. #endregion
  149.  
  150. #region 执行Sql语句
  151. /// <summary>
  152. /// 执行Sql语句
  153. /// </summary>
  154. /// <param name="sql"></param>
  155. /// <param name="parms"></param>
  156. /// <returns></returns>
  157. public static int ExecuteSql(string sql, CommandType cmdType = CommandType.Text, params SqlParameter[] parms)
  158. {
  159. int row = ;
  160. using (SqlConnection conn = CreateConn())
  161. {
  162. conn.Open();
  163. SqlCommand cmd = new SqlCommand(sql, conn);
  164. cmd.CommandType = cmdType;
  165. if (parms != null)
  166. {
  167. cmd.Parameters.AddRange(parms);
  168. }
  169. row = cmd.ExecuteNonQuery();
  170. }
  171. return row;
  172. }
  173. #endregion
  174.  
  175. #region 获取首行首列
  176. /// <summary>
  177. /// 获取首行首列
  178. /// </summary>
  179. /// <param name="sql"></param>
  180. /// <param name="parms"></param>
  181. /// <returns></returns>
  182. public static object GetSingle(string sql, CommandType cmdType= CommandType.Text, params SqlParameter[] parms)
  183. {
  184. using (SqlConnection conn = CreateConn())
  185. {
  186. conn.Open();
  187. SqlCommand cmd = new SqlCommand(sql, conn);
  188. cmd.CommandType = cmdType;
  189. if (parms != null)
  190. {
  191. cmd.Parameters.AddRange(parms);
  192. }
  193. return cmd.ExecuteScalar();
  194. }
  195. }
  196. #endregion
  197. }

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. SpringMVC中@ResourceMapping的基本用法

    最近从Struts转投SpringMVC,看代码时发现这个注解,感觉其作用应该和Struts的action差不多,把用法记录下来. 1. @RequestMapping(value="/de ...

  2. Solr与HBase架构设计

    摘要:本篇是本人在做一个大数据项目时,对于系统架构的一点总结,如何在保证存储量的情况下,又能保证数据的检索速度. 前提:      Solr.SolrCloud提供了一整套的数据检索方案,HBase提 ...

  3. internet connection sharing has been disabled by the network administrator

    Start > Run > gpedit.msc Locate; Computer Configuration/Administrative Templates/Network/Netwo ...

  4. JSP 标准标签库(JSTL)之最常用的JSTL标签总结

    JSP标准标签库(JSTL)是一个JSP标签集合,它封装了JSP应用的通用核心功能. Apache Tomcat安装JSTL 库步骤如下: 从Apache的标准标签库中下载的二进包(jakarta-t ...

  5. Hive variable demo

    create table ori_trans (account string, maker string, tdate string) partitioned by (country string); ...

  6. ok,今天讲讲linux的部分指令吧

    Linux布置服务  cd 进入   ../      上一层目录    sh shutdown.sh   -------tomcat的关闭指令  sh startup.sh       ------ ...

  7. NOIP2010提高组 关押罪犯 -SilverN

    (洛谷P1525) 题目描述 S 城现有两座监狱,一共关押着N 名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突.我们用“怨气值”( ...

  8. hdu-5496 Beauty of Sequence(递推)

    题目链接: Beauty of Sequence Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java ...

  9. HOJ 2678 Stars

    题意:N个星星(x,y,z),星星的等级等于x,y,z都小于等于它的星星数量,问每个等级有多少星星. 思路:最暴力的方法是三维树状数组.但是会超内存.所以我们对其中一维先排好序,然后用二维的做. 代码 ...

  10. SpringMVC 通过post接收form参数或者json参数

    springmvc的controller很多都用来提供restful服务,成为多功能action 同一个接口既能够提供给web端,也可以提供给ios以及安卓 @RequestBody 可以把接收到的j ...