设为首页 加入收藏

TOP

[机房合作]―SqlHelper我们又约了(一)
2015-11-21 01:52:31 来源: 作者: 【 】 浏览:0
Tags:机房 合作 SqlHelper 我们

一、是什么?

SqlHelper是一个基于·NET Framework的 数据库操作 组件,组件中包含数据库操作方法。

二、为什么?

为什么要用SqlHelper类?
1.SqlHelper用于简化重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等。
2.qlHelper 封装过后通常是只需要给方法传入一些参数如:数据库连接字符串,SQL参数等,就可以访问数据库了。
3.每种方法的重载都支持不同的方法参数,因此开发人员可以确定传递连接、事务和参数信息的方式。
4.为开发人员选择访问数据的方式提供了必要的灵活性。

三、怎么用?

在SqlHelper类中实现的方法包括:
1.ExecuteNonQuery。此方法用于执行不返回任何行或值的命令。这些命令通常用于执行数据库更新,但也可用于返回存储过程的输出参数。
2.ExecuteReader。此方法用于返回SqlDataReader对象,该对象包含由某一命令返回的结果集。
3.ExecuteDataset。此方法返回DataSet对象,该对象包含由某一命令返回的结果集。
4.ExecuteScalar。此方法返回一个值。该值始终是该命令返回的第一行的第一列。

5.ExecuteXmlReader。此方法返回 FOR XML 查询的 XML 片段。

VB.NET版实例(SqlHelper类):

?

Imports System.Data.SqlClient
Imports System.Reflection
Imports System.Data
Imports System.Configuration
Imports System.Collections.Generic

Public Class SQLHelper
    '定义一个数据库连接对象
    Dim strCon As String = ConfigurationSettings.AppSettings("ConnString")
    Dim conn As SqlConnection = New SqlConnection(strCon)
    '定义一个命令对象
    Dim cmd As New SqlCommand

    ''' 
    ''' 关闭连接
    ''' 
    '''需要关闭的连接
    ''' 
  
    Private Sub CloseConn(ByVal conn As SqlConnection)
        '如果没有关闭,则关闭连接
        If (conn.State <> ConnectionState.Closed) Then
            conn.Close()
            conn = Nothing
        End If
    End Sub

    ''' 
    ''' 关闭命令
    ''' 
    '''需要关闭的命令
    ''' 
  
    Private Sub CloseCmd(ByVal cmd As SqlCommand)
        '如果没有关闭命令,则关闭命令
        If Not IsNothing(cmd) Then
            cmd.Dispose() '处理
            ' cmd = Nothing
        End If
    End Sub

    ''' 
    ''' 有参数的 增删改 操作
    ''' 
    '''需要执行的命令
    '''所执行命令的类型,一般是sql语句,也有可能是存储过程,或表
    '''参数数组
    ''' 
  
   返回执行 增删改 语句受影响的行数,为Integer类型
  
    ''' 
  
    Public Function ExecuteNoQuery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As Integer
        '将传入的值,分别为cmd的属性赋值
        cmd.Parameters.AddRange(sqlParams) '传入参数
        cmd.CommandType = cmdType
        cmd.Connection = conn '设置连接
        cmd.CommandText = cmdText
        'cmd = New SqlCommand(cmdText, conn)
        Dim result As Integer
        '执行操作
        Try
            conn.Open()
            result = cmd.ExecuteNonQuery()   '执行增删改操作并返回受影响的行数
            cmd.Parameters.Clear()  '清除参数
        Catch ex As Exception
            MsgBox(ex.Message, , "数据库操作")
        Finally
            Call CloseConn(conn) '关闭连接
            Call CloseCmd(cmd)   '关闭命令
        End Try
        Return result
    End Function

    ''' 
    ''' 无参数的 增删改 操作
    ''' 
    '''需要执行的命令
    '''所执行的命令的类型,一般是sql语句,也有可能是存储过程,或表
    ''' 
  
   返回执行 增删改 语句受影响的行数,为Integer类型
  
    ''' 
  
    Public Function ExecuteNoQuery(ByVal cmdText As String, ByVal cmdType As CommandType) As Integer
        '将传入的参数分别为cmd属性赋值
        cmd.CommandType = cmdType
        cmd.Connection = conn
        cmd.CommandText = cmdText '设置查询单的语句
        'cmd = New SqlCommand(cmdText, conn)
        Dim res As Integer
        '执行操作
        Try
            conn.Open()
            res = cmd.ExecuteNonQuery()   '执行 增删改操作并返回收到影响的行术
            cmd.Parameters.Clear()        '清楚参数
        Catch ex As Exception
            MsgBox(ex.Message, , "数据库操作")
        Finally
            Call CloseConn(conn)
            Call CloseCmd(cmd)
        End Try
        Return res
    End Function

    ''' 
    ''' 有参数的查询操作
    ''' 
    '''需要执行的命令
    '''所执行命令的类型,一般是sql语句,也有可能是存储过程或者表
    '''参数数组
    ''' 
  
   返回执行 查询得到的结果,为DataTable类型
  
    ''' 
  
    Public Function ExecSelect(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal sqlParams As SqlParameter()) As DataTable

        Dim sqlAdapter As New SqlDataAdapter  '声明适配器
        Dim dt As New DataTable      '声明数据表
        Dim ds As New DataSet        '声明数据缓存

        cmd.CommandType = cmdType
        cmd.Connection = conn
        cmd.CommandText = cmdText    '设置查询语句
        '将传入的值分别付给cmd的属性
        cmd.Parameters.AddRange(sqlPa
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇sqlserver2008出现远程过程调用失.. 下一篇SQL查询初学者指南读书笔记(五)集..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: