1、定义:

SqlHelper是一个基于·NET Framework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper
封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。

SqlHelper其实就是一个封装的类,是对连接数据的一次抽象。

所谓无知者无谓,刚开始用vb.net连接SQL数据库的时候,每次都手动敲一遍,现在有巨人给我们总结出来SqlHelper类,只要调用这个类,就可以很容易的连接数据库,而且大幅度减少了出错的可能。

2、方法:
在 SqlHelper 类中实现的方法包括:
ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
ExecuteReader。此方法用于返回SqlDataReader对象,该对象包含由某一命令返回的结果集
ExecuteDataset。此方法返回DataSet对象,该对象包含由某一命令返回的结果集
ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。
ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。


3、代码
  1. '/*************************************************
  2. '作者:金福林
  3. '小组: 无
  4. '说明:SqlHelper
  5. '创建日期:2014/5/4 19:47:29
  6. '版本号:1.1.0
  7. '**********************************************/
  8.  
  9. Imports Entity
  10. Imports System.Data.SqlClient
  11. ''' <summary>
  12. ''' 对数据库的增删改查
  13. ''' </summary>
  14. ''' <remarks></remarks>
  15. Public Class SqlHelper
  16. Dim con As String = System.Configuration.ConfigurationSettings.AppSettings("con")
  17. Dim sqlcon As SqlConnection = New SqlConnection(con)
  18. Dim cmd As New SqlClient.SqlCommand '使用command对象执行命令并返回
  19. ''' <summary>
  20. ''' 执行增删改三个操作,有参数
  21. ''' </summary>
  22. ''' <param name="cmdText"></param>
  23. ''' <param name="cmdType"></param>
  24. ''' <param name="sqlParams"></param>
  25. ''' <returns></returns>
  26. ''' <remarks></remarks>
  27. Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As String, ByVal sqlParams As SqlParameter()) As Integer
  28. cmd.Parameters.AddRange(sqlParams) '将参数传入
  29. cmd.CommandType = cmdType
  30. cmd.Connection = sqlcon '设置连接
  31. cmd.CommandText = cmdText
  32. Try
  33. sqlcon.Open() '打开连接
  34. Return cmd.ExecuteNonQuery() '执行增删改
  35. cmd.Parameters.Clear() '清除参数
  36.  
  37. Catch ex As Exception
  38. Return 0
  39. Finally
  40. Call CloseCon(sqlcon)
  41. Call CloseCmd(cmd)
  42.  
  43. End Try
  44. End Function
  45. ''' <summary>
  46. ''' 执行增删改,无参数
  47. ''' </summary>
  48. ''' <param name="cmdText"></param>
  49. ''' <param name="cmdType"></param>
  50. ''' <returns></returns>
  51. ''' <remarks></remarks>
  52. Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As String) As Integer
  53. cmd.CommandText = cmdText
  54. cmd.CommandType = cmdType
  55. cmd.Connection = sqlcon
  56. Try
  57. sqlcon.Open()
  58. Return cmd.ExecuteNonQuery()
  59. Catch ex As Exception
  60. Return 0
  61. Finally
  62. Call CloseCon(sqlcon)
  63. Call CloseCmd(cmd)
  64. End Try
  65. End Function
  66. ''' <summary>
  67. ''' 执行查询,有参数
  68. ''' </summary>
  69. ''' <param name="cmdText"></param>
  70. ''' <param name="cmdType"></param>
  71. ''' <param name="sqlParams"></param>
  72. ''' <returns></returns>
  73. ''' <remarks></remarks>
  74. Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As String, ByVal sqlParams As SqlParameter()) As DataTable
  75. Dim sqlAdapter As SqlDataAdapter
  76. Dim dt As New DataTable
  77. Dim ds As New DataSet
  78.  
  79. cmd.CommandText = cmdText
  80. cmd.CommandType = cmdType
  81. cmd.Connection = sqlcon
  82. cmd.Parameters.AddRange(sqlParams)
  83. sqlAdapter = New SqlDataAdapter(cmd)
  84.  
  85. Try
  86.  
  87. sqlAdapter.Fill(ds) '填充dataset
  88. dt = ds.Tables(0) 'dtdataset的第一个表
  89. cmd.Parameters.Clear()
  90. Catch ex As Exception
  91. Return Nothing
  92. Finally
  93. Call CloseCmd(cmd)
  94. End Try
  95. Return dt
  96. End Function
  97. ''' <summary>
  98. ''' 执行查询,无参数
  99. ''' </summary>
  100. ''' <param name="cmdText"></param>
  101. ''' <param name="cmdType"></param>
  102. ''' <returns></returns>
  103. ''' <remarks></remarks>
  104. Public Function ExecSelect(ByRef cmdText As String, ByVal cmdType As String) As DataTable
  105. Dim sqlAdapter As SqlDataAdapter
  106. Dim ds As New DataSet
  107. cmd.CommandText = cmdText
  108. cmd.CommandType = cmdType
  109. cmd.Connection = sqlcon
  110. sqlAdapter = New SqlDataAdapter(cmd)
  111.  
  112. Try
  113. sqlAdapter.Fill(ds)
  114. Return ds.Tables(0)
  115. Catch ex As Exception
  116. Return Nothing
  117. Finally
  118. Call CloseCmd(cmd)
  119. End Try
  120. End Function
  121. ''' <summary>
  122. ''' 关闭数据库连接
  123. ''' </summary>
  124. ''' <param name="con"></param>
  125. ''' <remarks></remarks>
  126. Public Sub CloseCon(ByVal con As SqlConnection)
  127. If (con.State <> ConnectionState.Closed) Then
  128. con.Close()
  129. con = Nothing
  130. End If
  131. End Sub
  132. ''' <summary>
  133. ''' 关闭命令
  134. ''' </summary>
  135. ''' <param name="cmd"></param>
  136. ''' <remarks></remarks>
  137. Public Sub CloseCmd(ByVal cmd As SqlCommand)
  138. If Not IsNothing(cmd) Then
  139. cmd.Dispose()
  140. cmd = Nothing
  141. End If
  142. End Sub
  143. End Class

4、使用

我们只需要在D层,添加SqlHelper类,然后将上述代码复制到你的类中

使用代码:我截取一部分代码为例

SqlHelper是一次思想的升华,有了它仍需要我们的进一步理解。

vb.net中的SqlHelper的更多相关文章

  1. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  2. VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。

    早期的时候我使用的开发工具是VB6,VB6做图像处理的速度在我的软件Imageshop中有所体现,还是算可以的.目前,我已经改用C#来研究图像算法,C#中有指针,做图像处理起来效率确实要高不少.VB. ...

  3. VB.NET中的除法运算符 与 C#中的除法运算符

    VB.NET中的除法运算符有两个:/(浮点除法).\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分. 关于VB.NE ...

  4. VB6中的引用传递 与 VB.NET中的引用传递的区别

    首先注意一点,在VB6中缺省参数传递的方式是:引用传递,而在VB.NET中缺省参数传递的方式是:值传递. 然后我们看下面VB6中的引用传递与VB.NET中的引用传递的对比. VB6中的引用传递 Pri ...

  5. VB.NET中使用Linq TO SQL添加数据后获得自增长列ID

    VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...

  6. VB.NET中DataGridView控件

    VB.NET中对于表格数据的显示经常使用到DataGridView控件,其以丰富多样的数据表呈现形式被程序猿喜爱. 本人在做一个小系统中运用DataGridView控件的部分属性,这些功能的使用在使用 ...

  7. vb.net中存储过程的使用

    在机房收费系统过程中,试着使用了存储过程,离之前数据库的学习已经有些日子了.之前对于存储过程的了解也是听过而已,非常不清楚.因此,写这篇博客! 专业概念:存储过程是一个SQL语句和控制结构的集合,创建 ...

  8. VB.NET中网络编程的另一种方案----system.net中的HttpWebRequest类的使用

    VB.NET中网络编程的另一种方案---- system.net中的HttpWebRequest类的使用 在VB.net中进行网络编程,除了我之前写的随笔中的使用WinHttp组件进行编程,还有另一种 ...

  9. VB.NET中网络编程所需组件WinHTTP的添加

    VB.NET中网络编程所需组件: WinHTTP组件:项目-->添加引用-->COM选项卡-->Microsoft WinHTTP Services,version 5.1--> ...

随机推荐

  1. 监控SQL

    http://www.cnblogs.com/downmoon/archive/2009/08/12/1544764.html

  2. Thinkphp模板怎么使用自定义函数

    内置模板引擎支持对模板变量使用函数,并支持多个函数同时使用. 注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|fu ...

  3. 通过javascript完成分页查询功能

    主要思路: 实现分页查询的关键是设置一个页面的最大数据行数和开始行号,代码如下: 最大行数我们设置为常量,不必纠结于他,所以关键就是如何把起始行号设置为变量,让他随着我们点击[上一页]或[下一页]而改 ...

  4. Android调用相机并将照片存储到sd卡上

    Android中实现拍照有两种方法,一种是调用系统自带的相机,然后使用其返回的照片数据. 还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,洗染也比较复杂,一般平常的应用只 ...

  5. Cocos2D-x权威指南:通过节点控制屏幕中的全体渲染对象

    本节,已经能够利用我们眼下所学的知识做出一些有趣的东西.之前已经说过,CCNode类没有贴图,也就是说在屏幕上单独建立一个节点是没有不论什么效果的,可是能够通过这个"无形"的节点来 ...

  6. 从零开始学android开发-项目重命名

    --修改项目名称 选中项目-[refactor]-[rename] --修改package名称 选中需要重命名的包-[refactor]-[rename] --修改gen下面的名称 打开Android ...

  7. MVC网站发布常见问题

    直接发布的时候生成的bin会漏掉一些文件,从而导致网站无法访问: 解决方法:发布之后,再在本地运行一下网站,然后将运行后生成的bin文件夹下的文件拷贝到发布的文件夹目录下进行覆盖,就可以了

  8. Linux内核探讨-- 第七章

    本文是个人分析<Linux内核设计与实现>而写的总结,欢迎转载,请注明出处: http://blog.csdn.net/dlutbrucezhang/article/details/136 ...

  9. SpringMVC 源码深度解析&lt;context:component-scan&gt;(扫描和注冊的注解Bean)

    我们在SpringMVC开发项目中,有的用注解和XML配置Bean,这两种都各有自己的优势,数据源配置比較经经常使用XML配置.控制层依赖的service比較经经常使用注解等(在部署时比較不会改变的) ...

  10. JavaScript中事件捕获(Event capturing)-------------->由外向内,事件冒泡(Event bubblin)---------->由内向外

    addEventListener("click", function() {}, useCapture:false); <!DOCTYPE html> <html ...