首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

SQlHelper强大用途

2013-11-08 
SQlHelper强大用处最近写的几条线的代码,发现很多重复和数据库打交道的代码连接的打开或关闭,例如:Imports

SQlHelper强大用处
       最近写的几条线的代码,发现很多重复和数据库打交道的代码连接的打开或关闭,例如:

Imports System.Data.SqlClientImports System.ConfigurationImports System.DataPublic Class DBHelper        ''' <summary>    ''' 有参数的非查询的操作    ''' </summary>    ''' <param name="cmdText">增删改语句或者存储过程</param>    ''' <param name="cmdType">命令类型文本或者存储过程</param>    ''' <param name="paras">参数数组</param>    ''' <returns></returns>    ''' <remarks></remarks>    Public Shared Function ExecuteNoQuery(ByVal cmdText As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As Integer        '定义一个连接字符串        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")        '定义一个数据库连接对象        Dim conn As SqlConnection = New SqlConnection(strConnStr)        Dim cmd As New SqlCommand '定义一个命令对象        Dim res As Integer '定义一个变量用户存放返回结果        cmd = New SqlCommand(cmdText, conn)        cmd.CommandType = cmdType        cmd.Parameters.AddRange(paras)        Try            '打开数据连接            If conn.State = ConnectionState.Closed Then                conn.Open()            End If            '执行查询操作            res = cmd.ExecuteNonQuery()        Catch ex As Exception            MsgBox(ex.Message, , "数据库操作")        Finally            '关闭数据库连接            If conn.State = ConnectionState.Open Then                conn.Close()            End If        End Try        Return res '返回受影响的行数    End Function    ''' <summary>    ''' 执行不带参数的非查询操作    ''' </summary>    ''' <param name="cmdTxt">增删改Sql语句或者存储过程</param>    ''' <param name="cmdType">命令类型文本或者存储过程</param>    ''' <returns>受影响的行数</returns>    ''' <remarks></remarks>    Public Shared Function ExecuteNoQuery(ByVal cmdTxt As String, ByVal cmdType As CommandType) As Integer        '定义一个连接字符串        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")        '定义一个数据库连接对象        Dim conn As SqlConnection = New SqlConnection(strConnStr)        Dim cmd As New SqlCommand '定义一个命令对象        Dim res As Integer '定义一个变量用户存放返回结果        cmd = New SqlCommand(cmdTxt, conn)        cmd.CommandType = cmdType        Try            '打开数据库连接            If conn.State = ConnectionState.Closed Then                conn.Open()            End If            '执行命令            res = cmd.ExecuteNonQuery()        Catch ex As Exception            MsgBox(ex.Message, , "数据库操作")        Finally            '关闭数据库连接            If conn.State = ConnectionState.Open Then                conn.Close()            End If        End Try        Return res '返回受影响的行数    End Function    ''' <summary>    ''' 获取一个不带参数的查询的DataTable 结果集    ''' </summary>    ''' <param name="cmdtxt">查询sql语句或者存储过程</param>    ''' <param name="cmdType">命令类型(文本或者存储过程)</param>    ''' <returns>查询的结果</returns>    ''' <remarks></remarks>    Public Shared Function GetDataTable(ByVal cmdtxt As String, ByVal cmdType As CommandType) As DataTable        '定义一个连接字符串        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")        '定义一个数据库连接对象        Dim conn As SqlConnection = New SqlConnection(strConnStr)        Dim cmd As New SqlCommand '定义一个命令对象        Dim adataset As DataSet        Dim adaptor As SqlDataAdapter '定义一个适配器对象        cmd = New SqlCommand(cmdtxt, conn)        adaptor = New SqlDataAdapter(cmd)        adataset = New DataSet        cmd.CommandType = cmdType        Try            '打开数据库连接            If conn.State = ConnectionState.Closed Then                conn.Open()                '填充数据集                adaptor.Fill(adataset)            End If        Catch ex As Exception            MsgBox(ex.Message, , "数据库操作")        Finally            '关闭数据库连接            If conn.State = ConnectionState.Open Then                conn.Close()            End If        End Try        Return adataset.Tables(0) '返回数据集的第一个表    End Function    ''' <summary>    ''' 获取一个带参数的查询的DataTable结果集    ''' </summary>    ''' <param name="cmdTxt">查询SQL语句或者存储过程名称</param>    ''' <param name="cmdType">命令类型(文本或者存储过程)</param>    ''' <param name="paras">参数数组</param>    ''' <returns></returns>    ''' <remarks></remarks>    Public Shared Function GetDataTable(ByVal cmdTxt As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As DataTable        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")        '定义一个数据库连接对象        Dim conn As SqlConnection = New SqlConnection(strConnStr)        Dim cmd As New SqlCommand '定义一个命令对象        Dim adataset As DataSet        Dim adaptor As SqlDataAdapter '定义一个适配器对象        cmd = New SqlCommand(cmdTxt, conn)        adaptor = New SqlDataAdapter(cmd)        adataset = New DataSet        cmd.CommandType = cmdType        cmd.Parameters.AddRange(paras)        Try            '打开数据库连接            If conn.State = ConnectionState.Closed Then                conn.Open()            End If            '填充数据集            adaptor.Fill(adataset)        Catch ex As Exception            MsgBox(ex.Message, , "数据库操作")        Finally            '关闭数据库连接            If conn.State = ConnectionState.Open Then                conn.Close()            End If        End Try        Return adataset.Tables(0)    End Function    ''' <summary>    ''' 获取一个不带参数的查询结果阅读器    ''' </summary>    ''' <param name="cmdTxt">查询的SQL语句或者存储过程名称</param>    ''' <param name="cmdType">命令类型(文本或者存储过程)</param>    ''' <returns>查询结果</returns>    ''' <remarks></remarks>    Public Shared Function GetReader(ByVal cmdTxt As String, ByVal cmdType As CommandType) As SqlDataReader        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")        '定义一个数据库连接对象        Dim conn As SqlConnection = New SqlConnection(strConnStr)        Dim cmd As New SqlCommand '定义一个命令对象        'Dim reader As SqlDataReader        cmd = New SqlCommand(cmdTxt, conn)        cmd.CommandType = cmdType        Try            '打开数据库连线              If conn.State = ConnectionState.Closed Then                conn.Open()            End If            '执行命令              'reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)        Catch ex As Exception            MsgBox(ex.Message, , "数据库操作")        Finally        End Try        '返回一个阅读器          Return cmd.ExecuteReader(CommandBehavior.CloseConnection)    End Function    ''' <summary>    ''' 获取一个带参数的查询结果阅读器      ''' </summary>    ''' <param name="cmdTxt">查询的SQL语句或者存储过程名称</param>    ''' <param name="cmdType">命令类型(文本或者存储过程)</param>    ''' <param name="paras">参数数组</param>    ''' <returns>查询结果</returns>    ''' <remarks></remarks>    Public Shared Function GetReader(ByVal cmdTxt As String, ByVal cmdType As CommandType, ByVal paras As SqlParameter()) As SqlDataReader        Dim strConnStr As String = System.Configuration.ConfigurationManager.AppSettings("ConnStr")        '定义一个数据库连接对象        Dim conn As SqlConnection = New SqlConnection(strConnStr)        Dim cmd As New SqlCommand '定义一个命令对象        cmd = New SqlCommand(cmdTxt, conn)        cmd.CommandType = cmdType        cmd.Parameters.AddRange(paras)        'Dim reader As SqlDataReader          Try            '打开数据库连线              If conn.State = ConnectionState.Closed Then                conn.Open()            End If            '执行命令              'reader = cmd.ExecuteReader(CommandBehavior.CloseConnection)          Catch ex As Exception            MsgBox(ex.Message, , "数据库操作")        Finally        End Try        '返回一个阅读器          Return cmd.ExecuteReader()    End FunctionEnd Class
4楼xhf555551小时前
helpsql
3楼yefighter昨天 17:42
你们可以用架构 架构都封装了这些方法的 就不需要自己去写了 有好的东西可以去应用 当然如果需要原创肯定也是可以的 那么就需要慢慢维护优化自己的代码
2楼liutengteng130昨天 16:40
小助手。加油。
1楼wss784616158昨天 11:32
加油

热点排行