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. PB学习笔记(一)

    前言:我绝对很痛恨PB.1.没人带2.自己摸索3.头发掉了4.老大不停的给任务5.这语言老的不行了6,代码可读性不是一般的差 我绝对很喜欢PB.1.自我学习成功后那种成就感2.老大也会帮给我看看,指点 ...

  2. SecureCRT上传、下载文件(使用sz与rz命令)

    1.简述 借助securtCRT,使用linux命令sz可以很方便的将服务器上的文件下载到本地,使用rz命令则是把本地文件上传到服务器. 2.理解记忆 其中,对于sz和rz的理解与记忆我用了如下的方法 ...

  3. 解决CSS各种IE各种兼容问题(Google解决方案)

    google的 ie7 – js中是一个JavaScript库(解决IE与W3C标准的冲突的JS库),使微软的Internet Explorer的行为像一个Web标准兼容的浏览器,支持更多的W3C标准 ...

  4. C#用正则表达式 获取标签的属性或值

    整理两个 在C#中,用正则表达式 获取网页源代码标签的属性或值的方法 : 1.获取标签中的值: string str="<a href=\"www.csdn.net\&quo ...

  5. winform系统自动登录实现

    转载:http://www.cnblogs.com/wuhuacong/archive/2012/08/21/2648339.html 系统自动登录有时候很必要,在用户自己绝对信任的电脑上,自动登录对 ...

  6. CMSIS RTOS -- embOS segger

    #ifndef __CMSIS_OS_H__ #define __CMSIS_OS_H__ #include <stdint.h> #include <stddef.h> #i ...

  7. SAE/ISO standards for Automotive

    On-Board Diagnostics J1962 Diagnostic Connector Equivalent to ISO/DIS 15031-3: December 14, 2001J201 ...

  8. 删除重复记录(Mysql,SqlServer,Sqlite)

    Mysql中有重复的数据: ) )> order by count() desc 删除一下吧: delete a from t_resource_apptype_releation as a, ...

  9. js设置控件的隐藏与显示的两种方法

    js设置控件的隐藏与显示,设置控件style的display和visibility属性就可以了,下面有个示例,需要的朋友可以参考下用JavaScript隐藏控件的方法有两种,分别是通过设置控件的sty ...

  10. TXT EXPLORER

    EXE程序:http://files.cnblogs.com/xe2011/RELEASE_TXTExplorer2014-08-25-165323.rar c# 源码:http://files.cn ...