vb.net中的SqlHelper
1、定义:
SqlHelper是一个基于·NET Framework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper
封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。
SqlHelper其实就是一个封装的类,是对连接数据的一次抽象。
所谓无知者无谓,刚开始用vb.net连接SQL数据库的时候,每次都手动敲一遍,现在有巨人给我们总结出来SqlHelper类,只要调用这个类,就可以很容易的连接数据库,而且大幅度减少了出错的可能。
- '/*************************************************
- '作者:金福林
- '小组: 无
- '说明: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的更多相关文章
- [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...
- VB.NET中图像处理的一些技巧以及其和C#图像处理的差距。
早期的时候我使用的开发工具是VB6,VB6做图像处理的速度在我的软件Imageshop中有所体现,还是算可以的.目前,我已经改用C#来研究图像算法,C#中有指针,做图像处理起来效率确实要高不少.VB. ...
- VB.NET中的除法运算符 与 C#中的除法运算符
VB.NET中的除法运算符有两个:/(浮点除法).\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分. 关于VB.NE ...
- VB6中的引用传递 与 VB.NET中的引用传递的区别
首先注意一点,在VB6中缺省参数传递的方式是:引用传递,而在VB.NET中缺省参数传递的方式是:值传递. 然后我们看下面VB6中的引用传递与VB.NET中的引用传递的对比. VB6中的引用传递 Pri ...
- VB.NET中使用Linq TO SQL添加数据后获得自增长列ID
VB.NET中使用Linq TO SQL添加数据后获得自增长列ID: Dim tempOrdre As New Order With { .CustomerID = cmbCustomerName.S ...
- VB.NET中DataGridView控件
VB.NET中对于表格数据的显示经常使用到DataGridView控件,其以丰富多样的数据表呈现形式被程序猿喜爱. 本人在做一个小系统中运用DataGridView控件的部分属性,这些功能的使用在使用 ...
- vb.net中存储过程的使用
在机房收费系统过程中,试着使用了存储过程,离之前数据库的学习已经有些日子了.之前对于存储过程的了解也是听过而已,非常不清楚.因此,写这篇博客! 专业概念:存储过程是一个SQL语句和控制结构的集合,创建 ...
- VB.NET中网络编程的另一种方案----system.net中的HttpWebRequest类的使用
VB.NET中网络编程的另一种方案---- system.net中的HttpWebRequest类的使用 在VB.net中进行网络编程,除了我之前写的随笔中的使用WinHttp组件进行编程,还有另一种 ...
- VB.NET中网络编程所需组件WinHTTP的添加
VB.NET中网络编程所需组件: WinHTTP组件:项目-->添加引用-->COM选项卡-->Microsoft WinHTTP Services,version 5.1--> ...
随机推荐
- 监控SQL
http://www.cnblogs.com/downmoon/archive/2009/08/12/1544764.html
- Thinkphp模板怎么使用自定义函数
内置模板引擎支持对模板变量使用函数,并支持多个函数同时使用. 注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|fu ...
- 通过javascript完成分页查询功能
主要思路: 实现分页查询的关键是设置一个页面的最大数据行数和开始行号,代码如下: 最大行数我们设置为常量,不必纠结于他,所以关键就是如何把起始行号设置为变量,让他随着我们点击[上一页]或[下一页]而改 ...
- Android调用相机并将照片存储到sd卡上
Android中实现拍照有两种方法,一种是调用系统自带的相机,然后使用其返回的照片数据. 还有一种是自己用Camera类和其他相关类实现相机功能,这种方法定制度比较高,洗染也比较复杂,一般平常的应用只 ...
- Cocos2D-x权威指南:通过节点控制屏幕中的全体渲染对象
本节,已经能够利用我们眼下所学的知识做出一些有趣的东西.之前已经说过,CCNode类没有贴图,也就是说在屏幕上单独建立一个节点是没有不论什么效果的,可是能够通过这个"无形"的节点来 ...
- 从零开始学android开发-项目重命名
--修改项目名称 选中项目-[refactor]-[rename] --修改package名称 选中需要重命名的包-[refactor]-[rename] --修改gen下面的名称 打开Android ...
- MVC网站发布常见问题
直接发布的时候生成的bin会漏掉一些文件,从而导致网站无法访问: 解决方法:发布之后,再在本地运行一下网站,然后将运行后生成的bin文件夹下的文件拷贝到发布的文件夹目录下进行覆盖,就可以了
- Linux内核探讨-- 第七章
本文是个人分析<Linux内核设计与实现>而写的总结,欢迎转载,请注明出处: http://blog.csdn.net/dlutbrucezhang/article/details/136 ...
- SpringMVC 源码深度解析<context:component-scan>(扫描和注冊的注解Bean)
我们在SpringMVC开发项目中,有的用注解和XML配置Bean,这两种都各有自己的优势,数据源配置比較经经常使用XML配置.控制层依赖的service比較经经常使用注解等(在部署时比較不会改变的) ...
- JavaScript中事件捕获(Event capturing)-------------->由外向内,事件冒泡(Event bubblin)---------->由内向外
addEventListener("click", function() {}, useCapture:false); <!DOCTYPE html> <html ...