简单,实用,留存。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Data.SqlClient;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9.  
  10. namespace CarHailing.Base
  11. {
  12. /// <summary>
  13. /// 数据库帮助类
  14. /// </summary>
  15. public class SqlHelp
  16. {
  17. /// <summary>
  18. /// 创建一个已打开的连接
  19. /// </summary>
  20. /// <returns></returns>
  21. private static SqlConnection CreateConn()
  22. {
  23. SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString);
  24. conn.Open();
  25. return conn;
  26. }
  27.  
  28. /// <summary>
  29. /// 执行sql语句,返回受影响的行数
  30. /// </summary>
  31. /// <param name="sql"></param>
  32. /// <returns></returns>
  33. public static int ExecuteNonQuery(string sql)
  34. {
  35. return ExecuteNonQuery(sql, null);
  36. }
  37.  
  38. /// <summary>
  39. /// 执行sql语句,返回受影响的行数
  40. /// </summary>
  41. /// <param name="sql"></param>
  42. /// <returns></returns>
  43. public static int ExecuteNonQuery(string sql, SqlParameter[] ps)
  44. {
  45. SqlConnection conn = CreateConn();
  46. SqlCommand cmd = new SqlCommand(sql, conn);
  47. try
  48. {
  49. if (ps != null)
  50. {
  51. cmd.Parameters.AddRange(ps);
  52. }
  53. return cmd.ExecuteNonQuery();
  54. }
  55. catch (Exception ex)
  56. {
  57. return ;
  58. }
  59. finally
  60. {
  61. conn.Close();
  62. }
  63. }
  64.  
  65. /// <summary>
  66. /// 执行sql语句,返回一个结果表
  67. /// </summary>
  68. /// <param name="sql"></param>
  69. /// <returns></returns>
  70. public static DataTable ExecuteSelectDataTable(string sql)
  71. {
  72. return ExecuteSelectDataTable(sql, null);
  73. }
  74.  
  75. /// <summary>
  76. /// 执行sql语句,返回一个结果表
  77. /// </summary>
  78. /// <param name="sql"></param>
  79. /// <param name="ps"></param>
  80. /// <returns></returns>
  81. public static DataTable ExecuteSelectDataTable(string sql, SqlParameter[] ps = null)
  82. {
  83.  
  84. SqlConnection conn = CreateConn();
  85. SqlCommand cmd = new SqlCommand(sql, conn);
  86. try
  87. {
  88. if (ps != null)
  89. {
  90. cmd.Parameters.AddRange(ps);
  91. }
  92. //SqlDataAdapter sda = new SqlDataAdapter(cmd);
  93. SqlDataReader read = cmd.ExecuteReader();
  94. DataTable table = new DataTable();
  95. table.Load(read);
  96. //DataSet ds = new DataSet();
  97. //sda.Fill(ds);
  98. return table;
  99. }
  100. finally
  101. {
  102. conn.Close();
  103. }
  104. }
  105.  
  106. /// <summary>
  107. ///
  108. /// </summary>
  109. /// <param name="sql"></param>
  110. /// <returns></returns>decimal
  111. public static DataTable ExecuteSelectPageDataTable(string sql, ref SqlParameter[] ps)
  112. {
  113. SqlConnection conn = CreateConn();
  114. SqlCommand cmd = new SqlCommand(sql, conn);
  115. cmd.CommandType = CommandType.StoredProcedure;
  116. try
  117. {
  118. cmd.Parameters.AddRange(ps);
  119. SqlDataAdapter sda = new SqlDataAdapter(cmd);
  120. DataSet ds = new DataSet();
  121. sda.Fill(ds);
  122. return ds.Tables[];
  123. }
  124. catch (SqlException ex)
  125. {
  126. throw ex;
  127. }
  128. finally
  129. {
  130. conn.Close();
  131. }
  132. }
  133.  
  134. //public static SqlDataReader ExecuteReader(string cmdText, CommandType cmdType, params SqlParameter[] cmdParms)
  135. //{
  136. // SqlCommand cmd = new SqlCommand();
  137. // SqlConnection conn = CreateConn();
  138.  
  139. // try
  140. // {
  141. // ProCommand(cmd, conn, cmdText, cmdType, cmdParms);
  142. // SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  143. // //cmd.Parameters.Clear();//放到这里,返回参数会被清空。
  144. // return rdr;
  145. // }
  146. // catch
  147. // {
  148. // conn.Close();
  149. // throw;
  150. // }
  151. //}
  152.  
  153. /// <summary>
  154. /// 分页读取数据
  155. /// </summary>
  156. /// <param name="query">select查询语句</param>
  157. /// <param name="pageSize">每页显示数据数</param>
  158. /// <param name="PageIndex">当前页码</param>
  159. /// <param name="dt">存储数据的DataTable实例</param>
  160. public static void PageDataTable(string query, int pageSize, int PageIndex, DataTable dt)
  161. {
  162. //读取数据的开始索引
  163. long startIndex = (PageIndex - ) * pageSize;
  164. //读取数据的结束索引
  165. long endIndex = PageIndex * pageSize - ;
  166. //DataReader读取的当前数据行的索引
  167. long readToIndex = -;
  168. using (SqlConnection conn = CreateConn())
  169. {
  170. SqlCommand cmd = new SqlCommand(query, conn);
  171. //conn.Open();
  172. SqlDataReader dr = cmd.ExecuteReader();
  173. //数据源中的列数
  174. int cols = dr.VisibleFieldCount;
  175. //构造DataTable结构
  176. for (int i = ; i < cols; i++)
  177. {
  178. dt.Columns.Add(new DataColumn(dr.GetName(i), dr.GetFieldType(i)));
  179. }
  180. //读取数据,将数据一行一行添加到DataTable
  181. while (dr.Read())
  182. {
  183. readToIndex++;
  184. //当DataReader指针在开始索引和结束索引闭区间时才读取数据构造DataRow
  185. //并添加到DataTable
  186. if (readToIndex >= startIndex && readToIndex <= endIndex)
  187. {
  188. DataRow row = dt.NewRow();
  189. for (int i = ; i < cols; i++)
  190. {
  191. row[i] = dr[i];
  192. }
  193. dt.Rows.Add(row);
  194. }
  195. }
  196. dr.Close();
  197. }
  198. }
  199. }
  200. }

C#,一份超简单的数据库帮助类,SqlHelp的更多相关文章

  1. 通过一个简单的数据库操作类了解PHP链式操作的实现

    class Model{ public $table; //操作的表; private $opt; //查询的参数; private $pri; //表的主键; private $lastSql; / ...

  2. 超简单的php缓存类

    <?php class Cache { private $dir = "data/cache/";//定义缓存目录 private $key='c_a_sss'; // 文件 ...

  3. 开发C# .net时使用的数据库操作类SqlHelp.cs

    练习开发WPF程序的时候,是这样写的,虽然很简单,相必很多新手会用到,所以拿来共享一下, using System; using System.Collections.Generic; using S ...

  4. 简单的php Mysql类(查询 删除 更新)

    php Mysql类一般都包括了几乎我们常用的数据库操作方法,这里只提供了查询 删除 更新三种操作,算不是很全只是一个简单的数据库查询类了.      代码如下 复制代码 class mysql { ...

  5. 超简单使用批处理(batch)操作数据库

    超简单使用批处理(batch)操作数据库 批处理(batch)是什么 批处理的执行就好比快递员的工作: 未使用批处理的时候,快递员一次从分发点将一件快递发给客户: 使用批处理,则是快递员将所有要派送的 ...

  6. 超简单的CDH6部署和体验(单机版)

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  7. mysql主从复制(超简单)

      mysql主从复制(超简单) 怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作:  1.1.版本一致  1.2.初始化表,并在后台启动mysql  ...

  8. ssh框架整合---- spring 4.0 + struts 2.3.16 + maven ss整合超简单实例

    一 . 需求 学了这么久的ssh,一直都是别人整合好的框架去写代码,自己实际动手时才发现框架配置真是很坑爹,一不小心就踏错,真是纸上得来终觉浅! 本文将记录整合struts + spring的过程 , ...

  9. 这些优化 Drupal 网站速度的超简单办法,你忽略了多少?

    “怎么样能让我的 Drupal 网站更快一些?”是我们最常遇到的一个问题.站点速度确实非常重要,因为它会影响你的 SEO排名效果.访客是否停留以及你自己管理网站所需要的时间. 今天我们就来看看那些通过 ...

随机推荐

  1. Caused by: java.lang.ClassNotFoundException: org.jbpm.pvm.internal.processengine.SpringHelper

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  2. CF Educational Round 23 F.MEX Queries

    写了3小时 = =.这两天堕落了,昨天也刷了一晚上hihocoder比赛,还爆了零.之后得节制点了,好好准备考研.. 首先很容易想到 压缩数据 + 线段树 然后对于Pushdown真很难写..需要牵涉 ...

  3. LeetCode 456. 132 Pattern

    问题描述 给一组数,判断这组数中是否含有132 pattern. 132 pattern: i < j < k, 且 ai < ak < aj 第一种解法 使用栈来保存候选的子 ...

  4. iOS - CALayer 绘图层

    1.CALayer 绘图层 在 iOS 系统中,你能看得见摸得着的东西基本上都是 UIView,比如一个按钮.一个文本标签.一个文本输入框.一个图标等等,这些都是 UIView.其实 UIView 之 ...

  5. 前台序列化传过来的值,后台获取之后封装到map当中,让后在转化成json格式,最后在把json里面的参数里面的某一个值进行分割,最后在存到json格式的数据中去。

    一,html脚本 <script type="text/javascript"> $(function() { $(".btn-submit").c ...

  6. JDBCTemplate简化JDBC的操作(二)

    一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core. ...

  7. Docker部署Apollo配置中心

    1.Apollot简述 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于 ...

  8. [HEOI2016]游戏

    二分图匹配(网络流实现) # include <bits/stdc++.h> # define IL inline # define RG register # define Fill(a ...

  9. sspanel 添加远程节点问题汇总

    链接数据库错误: InternalError: (1130, u"Host '97.64.40.100' is not allowed to connect to this MySQL se ...

  10. 论文学习:Fully Convolutional Networks for Semantic Segmentation

    发表于2015年这篇<Fully Convolutional Networks for Semantic Segmentation>在图像语义分割领域举足轻重. 1 CNN 与 FCN 通 ...