揭秘SqlHelper

      在机房重构之前就已经听说SqlHelper的大名了,当时只是知道这是在D层用的对数据操作的,用起来特别
的方便,俗话说:闻名不如见面,现在用到了SqlHelper,那么就来说道说道
 一、定义
    SqlHelper:sql的帮助者,从名字中就可以知道,它是sql的有力助手;就是我们定义的一个类,在类中
  的方法包括了对数据库的连接语句,我们只需要用的时候向这个类中传入参数、sql语句就可以访问数据库 
  了,用起来特别的方便
    我们对于数据库的操作无非是增删改查,根据增删改查返回值类型的不同我们也可以分成两类:增删改,返
  回值类型为Integer,根据数据库中受影响的行数来判断是否对数据库操作;查,返回值为DataTable,返回
  的是一个虚拟的表,把数据放入虚拟表,然后返回即可。根据这样的分类,那么我们也就知道SqlHelper中
  的方法有查和增删改,而且还可继续分为有参数和无参数。下面我们来说说具体写法
 二、代码
  1.有参数的查询  
Public Class SqlHelper

    '定义connstr变量,获得连接数据库的字符串
    Public ReadOnly connstr As String = ConfigurationManager.AppSettings("constr")

    '设置连接
    Dim conn As SqlConnection = New SqlConnection(connstr)
    '定义cmd
    Dim cmd As New SqlCommand

    ''<summary>
    '' ExecSelect方法是对有参数的查询,参数不限
    '' </summary>
    '' <param name="<cmdText>">Sql语句,对数据进行的操作</param>
    '' <param name="<paras>">参数数组,在Sql语句中用到的参数,个数不限</param>
    '' <returns>
    ''<返回值为DataTable,返回值代表查询到的记录>
    '' </returns>

    Public Function ExecSelect(ByVal cmdText As String, ByVal paras As SqlParameter()) As DataTable
        Dim sqlAdapter As SqlDataAdapter
        Dim dt As New DataTable
        Dim ds As New DataSet

        cmd.Parameters.AddRange(paras)    '添加参数
        cmd.Connection = conn             '连接数据库
        cmd.CommandText = cmdText         '传入要执行的Sql语句

        sqlAdapter = New SqlDataAdapter(cmd)   '实例化sqlAdapter,并以cmd为工具读取数据

        Try
            sqlAdapter.Fill(ds)           'sqlAdapter读出的数据填入记录集DataSet中
            dt = ds.Tables(0)             'DataTable显示记录集DataSet中的表
            cmd.Parameters.Clear()        '清空参数
        Catch ex As Exception
            Return Nothing
        Finally
            cmd.Dispose()                 '销毁cmd
        End Try
        Return dt                         '返回读出的数据
    End Function
End Class
     D层在用查询的时候只需要调用此方法,并且把sql语句和参数出入进来即可,最后的返回值为虚拟网格
  DataTable,所有查询到的数据就在虚拟网格中
  2.有参数的增删改
 Public Function ExecAddDelUpdate(ByVal cmdText As String, ByVal paras As SqlParameter()) As Integer
        '将参数传入,并且个cmd的各个属性赋值
        cmd.Parameters.AddRange(paras)   '传入参数
        cmd.CommandText = cmdText        '传入要执行的Sql语句
        cmd.Connection = conn            '定义连接,全局变量

        Try
            conn.Open()                    '打开连接
            Return cmd.ExecuteNonQuery()   '执行对数据库的增删改查操作
            cmd.Parameters.Clear()         '清空参数
        Catch ex As Exception
            Return 0
        Finally
            conn.Close()                   '关闭连接
            cmd.Dispose()                  '销毁cmd
        End Try
    End Function
      同样D层需要对数据库进行增删改的时候只需要调用此方法即可,返回值为Integer,即受影响的行数
  当然还有无参数的查和增删改,只需在把Sql语句传入到SqlHelper类中的方法即可
  我们可以看一下D层用到对数据库增删改操作后是如何调用SqlHelper的
Public Function AddStudent(student As Entity.StudentEntity) As Integer Implements IStudent.AddStudent
        Dim helper As New SqlHelper
        Dim dt As Integer

        Dim StudentInfo As String = "insert into student_info(studentno,name,sex,department,grade,class) values(@studentnos,@names,@sex,@department,@grade,@class)"
        '传入参数,参数个数不限
        Dim Paras As SqlParameter() = {New SqlParameter("@studentnos", student.StudentNo),
                                                 New SqlParameter("@names", student.Name),
                                                 New SqlParameter("@sex", student.Sex),
                                                 New SqlParameter("@department", student.Department),
                                                 New SqlParameter("@grade", student.Grade),
                                                 New SqlParameter("@class", student.Classes)}
        dt = helper.ExecAddDelUpdate(StudentInfo, Paras) '调用方法

        Return dt
    End Function
 三、小结
    1.看了上边的解释大家应该会对SqlHelper不再陌生了,说白了就是一个类,类中有几种通用的方法,在
  用到的时候直接调用类中的方法即可,很方便
    2.在敲代码中的某一个功能的时候,我们可能感觉到非常的别扭,这时可以试着在网上找一些方便的方
  法,因为一个好的产品一般是很方便,让人用起来非常舒服的。 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值