参照别人的方法,顺便再次复习下ADO.NET的相关知识。为自己的类库做准备。

  1. namespace Common.SqlHelper
  2. {
  3. /// <summary>
  4. /// ADO.NET-------底层的数据操作
  5. /// </summary>
  6. public class SqlHelper
  7. {
  8. /// <summary>
  9. /// 通过构造函数来实例化连接字符串
  10. /// </summary>
  11. /// <param name="connectionString"></param>
  12. public SqlHelper(string connectionString)
  13. {
  14. this.connectionString = connectionString;
  15. }
  16. private string connectionString;
  17. /// <summary>
  18. /// 设置DB访问字符串
  19. /// </summary>
  20. public string ConnectionSrting
  21. {
  22. set { connectionString = value; }
  23. }
  24.  
  25. #region 执行一个查询,返回查询的结果集+ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
  26. public DataTable ExecuteDataTable(string sql)
  27. {
  28. return ExecuteDataTable(sql, CommandType.Text, null);
  29. }
  30. public DataTable ExecuteDataTable(string sql, CommandType commandType)
  31. {
  32. return ExecuteDataTable(sql, commandType, null);
  33. }
  34.  
  35. /// <summary>
  36. /// 执行一个查询,返回查询的结果集。
  37. /// </summary>
  38. /// <param name="sql"></param>
  39. /// <param name="commandtype"></param>
  40. /// <param name="parameters"></param>
  41. /// <returns></returns>
  42. public DataTable ExecuteDataTable(string sql, CommandType commandtype, SqlParameter[] parameters)
  43. {
  44. DataTable data = new DataTable(); //实例化datatable,用于装载查询的结果集
  45. using (SqlConnection conn = new SqlConnection(connectionString))
  46. {
  47. using (SqlCommand cmd = new SqlCommand(sql, conn))
  48. {
  49. cmd.CommandType = commandtype;
  50. if (parameters != null)
  51. {
  52. foreach (SqlParameter parameter in parameters)
  53. {
  54. cmd.Parameters.Add(parameter); //将参数添加到sql语句中。
  55. }
  56. }
  57. //申明sqldataadapter,通过cmd来实例化它,这个是数据设备器,可以直接往datatable,dataset中写入。
  58. SqlDataAdapter adapter = new SqlDataAdapter(cmd);
  59. adapter.Fill(data); //利用Fill来填充。
  60. }
  61. }
  62. return data;
  63. }
  64. #endregion
  65.  
  66. #region 返回一个SqlDataReader对象。
  67.  
  68. public SqlDataReader ExecuteReader(string sql)
  69. {
  70. return ExecuteReader(sql, CommandType.Text, null);
  71. }
  72. public SqlDataReader ExecuteReader(string sql, CommandType commandType)
  73. {
  74. return ExecuteReader(sql, commandType, null);
  75. }
  76.  
  77. /// <summary>
  78. /// 返回一个SqlDataReader,从 SQL Server 数据库读取行的只进流的方式
  79. /// </summary>
  80. /// <returns></returns>
  81. public SqlDataReader ExecuteReader(string sql, CommandType commandType, SqlParameter[] parameters)
  82. {
  83. SqlConnection conn = new SqlConnection(connectionString);
  84. SqlCommand cmd = new SqlCommand(sql, conn);
  85. if (parameters != null)
  86. {
  87. foreach (SqlParameter parameter in parameters)
  88. {
  89. cmd.Parameters.Add(parameter);
  90. }
  91. }
  92. conn.Open();
  93. //CommandBehavior.CloseConnection+关闭reader对象关闭与其连接的Connection对象。
  94. return cmd.ExecuteReader(CommandBehavior.CloseConnection);
  95. }
  96. #endregion
  97.  
  98. #region 执行一个查询,返回结果集的首行首列。忽略其他行,其他列
  99. /// <summary>
  100. /// 只执行sql语句
  101. /// </summary>
  102. /// <param name="sql"></param>
  103. /// <returns></returns>
  104. public object ExecuteScalar(string sql)
  105. {
  106. return ExecuteScalar(sql, CommandType.Text, null);
  107. }
  108. /// <summary>
  109. /// 可以执行存储过程
  110. /// </summary>
  111. /// <param name="sql"></param>
  112. /// <param name="commandType"></param>
  113. /// <returns></returns>
  114. public object ExecuteScalar(string sql, CommandType commandType)
  115. {
  116. return ExecuteScalar(sql, commandType, null);
  117. }
  118. /// <summary>
  119. /// 执行一个查询,返回结果集的首行首列
  120. /// </summary>
  121. /// <param name="sql"></param>
  122. /// <param name="commandType"></param>
  123. /// <param name="parameters"></param>
  124. /// <returns></returns>
  125. public object ExecuteScalar(string sql, CommandType commandType, SqlParameter[] parameters)
  126. {
  127. SqlConnection conn = new SqlConnection(connectionString);
  128. SqlCommand cmd = new SqlCommand(sql, conn);
  129. cmd.CommandType = commandType;
  130. if (parameters != null)
  131. {
  132. foreach (SqlParameter parameter in parameters)
  133. {
  134. cmd.Parameters.Add(parameter);
  135. }
  136. }
  137. conn.Open();
  138. //cmd.ExecuteScalar()+执行查询,并返回查询所返回的结果集中第一行的第一列。 忽略其他列或行。
  139. object result = cmd.ExecuteScalar();
  140. conn.Close();
  141. return result;
  142. }
  143.  
  144. #endregion
  145.  
  146. #region 进行CRUD操作
  147.  
  148. public int ExecuteNonQuery(string sql)
  149. {
  150. return ExecuteNonQuery(sql,CommandType.Text,null);
  151. }
  152. public int ExecuteNonQuery(string sql,CommandType commandType)
  153. {
  154. return ExecuteNonQuery(sql, commandType, null);
  155. }
  156. /// <summary>
  157. /// 对数据库进行增删改的操作
  158. /// </summary>
  159. /// <param name="sql">执行的Sql语句</param>
  160. /// <param name="commandType">要执行的查询语句类型,如存储过程或者sql文本命令</param>
  161. /// <param name="parameters">Transact-SQL语句或者存储过程的参数数组</param>
  162. /// <returns></returns>
  163. public int ExecuteNonQuery(string sql,CommandType commandType,SqlParameter[]parameters)
  164. {
  165. SqlConnection conn=new SqlConnection(connectionString);
  166. SqlCommand cmd=new SqlCommand(sql,conn);
  167. cmd.CommandType = commandType;
  168. if (parameters!=null)
  169. {
  170. foreach (SqlParameter parameter in parameters)
  171. {
  172. cmd.Parameters.Add(cmd);
  173. }
  174. }
  175. conn.Open();
  176. int count = cmd.ExecuteNonQuery();
  177. conn.Close();
  178. return count;
  179. }
  180.  
  181. #endregion
  182.  
  183. #region 返回当前连接的数据库中所有用户创建的数据库
  184. /// <summary>
  185. /// 返回当前连接的数据库中所有用户创建的数据库
  186. /// </summary>
  187. /// <param name="tableName">表名</param>
  188. /// <returns></returns>
  189. public DataTable GetTable(string tableName)
  190. {
  191. DataTable table = new DataTable();
  192. using (SqlConnection conn = new SqlConnection(connectionString))
  193. {
  194. conn.Open();
  195. table = conn.GetSchema(tableName);
  196. }
  197. return table;
  198. }
  199. #endregion
  200. }
  201. }

ADO.NET封装的SqlHelper的更多相关文章

  1. 自己封装的SqlHelper

    using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...

  2. ADO简单封装(MFC)

    简单封装了一下,不是很严谨. /************************************************************************/ /* INSTRUC ...

  3. 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类

    using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...

  4. C# ADO.NET 封装的增删改查

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  5. ADO.NET复习——自己编写SqlHelper类

    今天复习了一次ADO.NET基础,整理一下自己的认为的重点: 编写SqlHelper类,方便我们执行数据库语句,这时可以直接调用封装在SqlHelper类的方法.现在大多数公司面试的时候,给你的面试题 ...

  6. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

  7. 第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获得连接字符串

    第19课-数据库开发及ado.net ADO.NET--SQLDataReader使用.SqlProFiler演示.ADoNET连接池,参数化查询.SQLHelper .通过App.Config文件获 ...

  8. Delphi中封装ADO之我重学习记录

    delphi adodataset ctstatic 数据是缓存在服务器端还是客户端 答:客户端,开启本地缓存功能后,就能数据在本地批量修改后,再批量提交,减少了网络传送   原创,专业,图文 Del ...

  9. 不该活着的SqlHelper和DBHelper

    前言: 还记得刚学ADO.NET的情景么? 还记得当年是怎么从ADO.NET被忽悠到用SqlHelper的么? 话说从入门到走上工作岗位那些年,我们就一直被纯纯地教导或引导,ADO.NET太原始,得封 ...

随机推荐

  1. js跨浏览器的事件处理函数

    /* 跨浏览器的事件处理函数 */ var EventUtil = { addHandler : function(element,type,handler){ if(element.addEvent ...

  2. Spring-Context之八:一些依赖注入的小技巧

    Spring框架在依赖注入方面是非常灵活和强大的,多了解点一些注入的方式.方法,绝对能优化配置. idref idref属性可以传入一个bean的名称,虽然它是指向一个bean的引用,但是得到的是该b ...

  3. AngularJS快速入门指南12:模块

    AngularJS模块定义了一个application. 模块是一个application中不同部分的容器. application中的所有控制器都应该属于一个模块. 带有一个控制器的模块 下面这个a ...

  4. java 锁2

    并发,其实是多线程才有的场景... java 多线程? 锁? 现在看来,即使已经工作了4.5年,这仍然不是一个简单的问题. 其实java 本身有提供锁的机制. 比如 Object对象的 wait .n ...

  5. 每天一个linux命令(58):telnet命令

    telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用户 ...

  6. lua实现深度拷贝table表

    lua当变量作为函数的参数进行传递时,类似的也是boolean,string,number类型的变量进行值传递.而table,function,userdata类型的变量进行引用传递.故而当table ...

  7. OutputCache属性详解(四)— SqlDependency

    目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...

  8. iOS-ARC

    1. 本文的主要内容: ARC的本质 ARC的开启与关闭 ARC的修饰符 ARC与Block ARC与Toll-Free Bridging ARC的本质 ARC是编译器(时)特性,而不是运行时特性,更 ...

  9. mysql创建数据库

    mysql创建数据库 创建utf8编码的数据库 CREATE DATABASE IF NOT EXISTS my_db default character set utf8 COLLATE utf8_ ...

  10. CooMark网页颜色取色表

    CooMark网页颜色取色表 艾利斯兰 - #F0F8FF - aliceblue 古董白 - #FAEBD7 - antiquewhite 浅绿色 - #00FFFF - aqua 碧绿色 - #7 ...