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、代码
'/*************************************************
'作者:金福林
'小组: 无
'说明:SqlHelper类
'创建日期:2014/5/4 19:47:29
'版本号:1.1.0
'**********************************************/ Imports Entity
Imports System.Data.SqlClient
''' <summary>
''' 对数据库的增删改查
''' </summary>
''' <remarks></remarks>
Public Class SqlHelper
Dim con As String = System.Configuration.ConfigurationSettings.AppSettings("con")
Dim sqlcon As SqlConnection = New SqlConnection(con)
Dim cmd As New SqlClient.SqlCommand '使用command对象执行命令并返回
''' <summary>
''' 执行增删改三个操作,有参数
''' </summary>
''' <param name="cmdText"></param>
''' <param name="cmdType"></param>
''' <param name="sqlParams"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As String, ByVal sqlParams As SqlParameter()) As Integer
cmd.Parameters.AddRange(sqlParams) '将参数传入
cmd.CommandType = cmdType
cmd.Connection = sqlcon '设置连接
cmd.CommandText = cmdText
Try
sqlcon.Open() '打开连接
Return cmd.ExecuteNonQuery() '执行增删改
cmd.Parameters.Clear() '清除参数 Catch ex As Exception
Return 0
Finally
Call CloseCon(sqlcon)
Call CloseCmd(cmd) End Try
End Function
''' <summary>
''' 执行增删改,无参数
''' </summary>
''' <param name="cmdText"></param>
''' <param name="cmdType"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As String) As Integer
cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = sqlcon
Try
sqlcon.Open()
Return cmd.ExecuteNonQuery()
Catch ex As Exception
Return 0
Finally
Call CloseCon(sqlcon)
Call CloseCmd(cmd)
End Try
End Function
''' <summary>
''' 执行查询,有参数
''' </summary>
''' <param name="cmdText"></param>
''' <param name="cmdType"></param>
''' <param name="sqlParams"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As String, ByVal sqlParams As SqlParameter()) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim dt As New DataTable
Dim ds As New DataSet cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = sqlcon
cmd.Parameters.AddRange(sqlParams)
sqlAdapter = New SqlDataAdapter(cmd) Try sqlAdapter.Fill(ds) '填充dataset
dt = ds.Tables(0) 'dt为dataset的第一个表
cmd.Parameters.Clear()
Catch ex As Exception
Return Nothing
Finally
Call CloseCmd(cmd)
End Try
Return dt
End Function
''' <summary>
''' 执行查询,无参数
''' </summary>
''' <param name="cmdText"></param>
''' <param name="cmdType"></param>
''' <returns></returns>
''' <remarks></remarks>
Public Function ExecSelect(ByRef cmdText As String, ByVal cmdType As String) As DataTable
Dim sqlAdapter As SqlDataAdapter
Dim ds As New DataSet
cmd.CommandText = cmdText
cmd.CommandType = cmdType
cmd.Connection = sqlcon
sqlAdapter = New SqlDataAdapter(cmd) Try
sqlAdapter.Fill(ds)
Return ds.Tables(0)
Catch ex As Exception
Return Nothing
Finally
Call CloseCmd(cmd)
End Try
End Function
''' <summary>
''' 关闭数据库连接
''' </summary>
''' <param name="con"></param>
''' <remarks></remarks>
Public Sub CloseCon(ByVal con As SqlConnection)
If (con.State <> ConnectionState.Closed) Then
con.Close()
con = Nothing
End If
End Sub
''' <summary>
''' 关闭命令
''' </summary>
''' <param name="cmd"></param>
''' <remarks></remarks>
Public Sub CloseCmd(ByVal cmd As SqlCommand)
If Not IsNothing(cmd) Then
cmd.Dispose()
cmd = Nothing
End If
End Sub
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. Codeforces Round #365 (Div. 2) D. Mishka and Interesting sum (离线树状数组+前缀xor)

    题目链接:http://codeforces.com/contest/703/problem/D 给你n个数,m次查询,每次查询问你l到r之间出现偶数次的数字xor和是多少. 我们可以先预处理前缀和X ...

  2. setsockopt的作用列表

    功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选项位于的层和选项的名称必须给出.为了操作套接字层的选项,应该 将层的值 ...

  3. nginx打开目录游览功能

    #开启索引功能 location / { autoindex on; autoindex_exact_size off; autoindex_localtime on; } #别名目录location ...

  4. fastcgi 分布式

    以lighttpd fastcgi写一下自己对fastcgi分布式的理解. 假设一台机器A上运行lighttpd,在这台主机上只是对请求进行分发. 而在其他多台机器上运行多个fastcgi进程,用来接 ...

  5. Spring REST实践之客户端和测试

    RestTemplate 可参考spring实战来写这部分. RestTemplate免于编写乏味的样板代码,RestTemplate定义了33个与REST资源交互的方法,涵盖了HTTP动作的各种形式 ...

  6. css3 前缀

  7. CentOS7安装telnet服务

    CentOS7.0 telnet-server 启动的问题.解决方法:    ①.先检查CentOS7.0是否已经安装以下两个安装包:telnet-server.xinetd.命令如下:    rpm ...

  8. js 判断pc与手机

    var u = navigator.userAgent; if ((u.indexOf('Mac') > -1 || u.indexOf('Windows') > -1) &&am ...

  9. 系列文章--SharePoint 开发教程

    SharePoint 2013 图文开发系列之入门教程 学习地址:http://www.cnblogs.com/jianyus/p/3461719.html 里面有2007.2010.2013各个版本 ...

  10. ASP.NET加载主题和皮肤样式的各种方式

    一.加载主题(皮肤.样式表)的多种方式 除了在页面指令中采用Theme或者StylesheetTheme为单个页面加载主题外,还可以通过配置文件为多个页面批量加载主题,另外,还可以通过改变页面的The ...