Sqlhelper
来源:互联网 发布:淘宝现在做什么比较好 编辑:程序博客网 时间:2024/05/18 12:37
什么是sqlhelper?
在学习三层的过程中,我们把对数据库的操作全部写在了DAL层,其中包括数据库的连接,command命令,DataReader等,但是问题是我们只要涉及到数据的访问的操作,我们都需要建立数据库的链接,执行sql命令,为了提高代码的可利用,所以就把对数据库的操作封装到了一个sqlhelper类里面,等我们再执行对数据库的操作的时候直接调用sqlhelper类就可以。
怎么使用?
配置项:
<add key="ConnString" value="Server=.;Database=charge_sys;Uid=sa;Password=123456"/>
实现方法:
1.ExecSelect.有参有返回值,返回值类型为datatable
2.ExecSelectNo.无参有返回值,返回值类型为datatable
3.ExecAddDelUpdate.有参有返回值,返回类型为Boolean
4.ExecAddDelUpdateNo.无参有返回值,返回类型为Boolean
''' <summary> ''' 执行查询操作,(有参),返回值为datatable类型,参数不限 ''' </summary> ''' <param name="cmdTxt">参数cmdTxt为所要执行的sql语句,也有存储过程</param> ''' <param name="cmdType">SqlCommand的执行类型</param> ''' <param name="paras">查询时的命令参数paras</param> ''' <returns>整型返回值,以表的方式返回</returns> ''' <remarks></remarks> Public Function ExecSelect(ByVal cmdTxt As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable '定义适配器 Dim sqlAdapter As SqlDataAdapter '定义并实例化数据缓冲区对象,即从数据库传入的对象。 Dim adataset As New DataSet Dim dt As New DataTable '给cmd赋值 cmd.CommandText = cmdTxt '执行命令的类型 cmd.CommandType = cmdType cmd.Connection = conn cmd.Parameters.AddRange(paras) '参数添加 sqlAdapter = New SqlDataAdapter(cmd) '实例化adapter Try sqlAdapter.Fill(adataset) '用adapter将dataset填充 dt = adataset.Tables(0) cmd.Parameters.Clear() Catch ex As Exception '错误处理程序,出错则提示 MsgBox(ex.Message, , "数据库操作") '如果出错,返回0 Finally Call CloseCmd(cmd) End Try Return dt End Function ''' <summary> ''' 执行查询操作,(无参),返回值为datatable类型 ''' </summary> ''' <param name="cmdText">需要执行语句,一般为sql语句,也有存储过程</param> ''' <param name="cmdType">判断sql语句的类型,一般都不是存储过程</param> ''' <returns>datatable,查询到的表格</returns> ''' <remarks></remarks> Public Function ExecSelectNo(ByVal cmdText As String, ByVal cmdType As CommandType) As DataTable Dim sqlAdapter As SqlDataAdapter Dim dt As New DataTable '数据表 Dim ds As New DataSet '缓存 '给cmd赋值 cmd.CommandText = cmdText cmd.CommandType = cmdType cmd.Connection = conn sqlAdapter = New SqlDataAdapter(cmd) '实例化adapter Try sqlAdapter.Fill(ds) '用adapter将dataset填充 dt = ds.Tables(0) Catch ex As Exception MsgBox(ex.Message, , "数据库操作") '如果出错,返回0 Finally Call CloseCmd(cmd) End Try Return dt End Function ''' <summary> ''' 执行增删改操作,(有参数)返回值为boolean类型,确认是否执行成功 ''' </summary> ''' <param name="cmdText" >需要执行行语句,一般是sql语句,也有存储过程</param> ''' <param name="paras">参数数组,无法确认有多少参数</param> '''<returns></returns > ''' <remarks></remarks> Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As Boolean '将出入的值,分别为cmd的属性赋值 cmd.Parameters.AddRange(paras) '将参数传入 cmd.CommandText = cmdText cmd.CommandType = cmdType cmd.Connection = conn '设置连接,全局变量 Try conn.Open() Return cmd.ExecuteNonQuery() '执行增删改操作 cmd.Parameters.Clear() '清除参数 Catch ex As Exception MsgBox(ex.Message, , "数据库操作") '如果出错,返回0 Return False Finally Call CloseConn(conn) Call CloseCmd(cmd) End Try End Function ''' <summary> ''' 执行带参数的增删改操作,(无参)返回值为Boolean类型,确认是否执行成功 ''' </summary> ''' <returns></returns> ''' <remarks></remarks> Public Function ExecAddDelUpdateNo(ByVal cmdText As String, ByVal cmdType As CommandType) As Boolean '为要执行的命令cmd赋值 cmd.CommandText = cmdText cmd.CommandType = cmdType cmd.Connection = conn '设置连接 '执行操作 Try '如果数据库的连接状态为关闭,则将其打开 If conn.State = ConnectionState.Closed Then conn.Open() End If Return cmd.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message, , "数据库操作") '如果出错,返回0 Return False Finally '关闭连接,释放内存 Call CloseConn(conn) Call CloseCmd(cmd) End Try End Function ''' <summary> ''' 关闭连接 ''' </summary> ''' <param name="conn" >需要关闭的连接</param> ''' <remarks></remarks> Public Sub CloseConn(ByVal conn As SqlConnection) If (conn.State <> ConnectionState.Closed) Then conn.Close() conn = 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
总结:
Sqlhelper就是一个类,封装了对数据库建立连接,执行命名等操作,当我们需要操作数据库时,直接调用就可以,就不必再在DAL里的每一个类里重复写了。
0 0
- SqlHelper
- SqlHelper
- SqlHelper
- SqlHelper:
- sqlHelper
- SQLHelper
- SqlHelper
- SQLHelper
- SqlHelper
- SqlHelper
- SQLHelper
- SqlHelper
- sqlhelper
- SQLHelper
- SQLHelper
- SQLHelper
- SqlHelper
- SqlHelper
- 腾讯云ubuntu搭建tomcat
- 【GAN的魔法】生成对抗网络技术进展及论文笔记3
- 渲染优化
- 23. Merge k Sorted Lists
- 进程的概念/标识/结构/状态
- Sqlhelper
- @org.springframework.beans.factory.annotation.Autowired(required=true)
- 程序的职业规划
- 利用MATLAB分析红米note4的音频采集卡性质
- OGG 进程清除、重建
- C#实现木马程序
- jdk安装
- 整理下曾经学习shell的笔记
- Kickstart Round A 2017 Problem A. Square Counting Problem B. Patterns Overlap