`
tangleilei
  • 浏览: 13920 次
  • 来自: 上海
社区版块
存档分类
最新评论

sqlhelper vb.net版

    博客分类:
  • vb
 
阅读更多

Imports System.Data
Imports System.Data.SqlClient
Imports System.Configuration
Imports System.Collections
Public MustInherit Class SqlHelper
    ''' <summary>
    ''' 哈希表:缓存参数
    ''' </summary>
    ''' <remarks></remarks>
    Public Shared parmCache As Hashtable = Hashtable.Synchronized(New Hashtable())
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="connectionString"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters">ParamArray 表示函数参数个数不确定C#中为params</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteNonquery(ByVal connectionString As String, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As Int32
        Dim cmd As SqlCommand = New SqlCommand
        Using conn As SqlConnection = New SqlConnection(connectionString)
            PrepareCommand(cmd, conn, Nothing, cmdType, cmdText, commandParameters)
            Dim val As Int32 = cmd.ExecuteNonQuery()
            cmd.Parameters.Clear()
            Return val
        End Using
    End Function
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="connection"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters">ParamArray 表示函数参数个数不确定C#中为params</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteNonQuery(ByVal connection As SqlConnection, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As Int32
        Dim cmd As SqlCommand = New SqlCommand
        PrepareCommand(cmd, connection, Nothing, cmdType, cmdText, commandParameters)
        Dim val As Int32 = cmd.ExecuteNonQuery()
        cmd.Parameters.Clear()
        Return val
    End Function
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="trans"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters">ParamArray 表示函数参数个数不确定C#中为params</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteNonQuery(ByVal trans As SqlTransaction, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As Int32
        Dim cmd As SqlCommand = New SqlCommand
        PrepareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters)
        Dim val As Int32 = cmd.ExecuteNonQuery()
        cmd.Parameters.Clear()
        Return val
    End Function
    ''' <summary>
    ''' 返回数据集,可以包含多个表,这是我自己加上的,用以返回数据集,表
    ''' </summary>
    ''' <param name="connectionString"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters"></param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteDataSet(ByVal connectionString As String, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As DataSet
        Dim cmd As SqlCommand = New SqlCommand
        Using conn As SqlConnection = New SqlConnection(connectionString)
            PrepareCommand(cmd, conn, Nothing, cmdType, cmdText, commandParameters)
            Dim adp As SqlDataAdapter = New SqlDataAdapter(cmd)
            Dim ds As DataSet = New DataSet
            Try
                adp.Fill(ds)
                cmd.Parameters.Clear()
            Finally
                adp.Dispose()
            End Try
            Return ds
        End Using
    End Function
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="connectionString"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters">ParamArray 表示函数参数个数不确定C#中为params</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteReader(ByVal connectionString As String, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As SqlDataReader
        Dim cmd As SqlCommand = New SqlCommand
        Dim conn As SqlConnection = New SqlConnection(connectionString)
        Try
            PrepareCommand(cmd, conn, Nothing, cmdType, cmdText, commandParameters)
            Dim rdr As SqlDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)
            cmd.Parameters.Clear()
            Return rdr
        Catch ex As Exception
            conn.Close()
            Throw
        End Try
    End Function
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="connectionString"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters">ParamArray 表示函数参数个数不确定C#中为params</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteScalar(ByVal connectionString As String, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As Object
        Dim cmd As SqlCommand = New SqlCommand
        Using connection As SqlConnection = New SqlConnection(connectionString)
            PrepareCommand(cmd, connection, Nothing, cmdType, cmdText, commandParameters)
            Dim val As Object = cmd.ExecuteScalar()
            cmd.Parameters.Clear()
            Return val
        End Using
    End Function
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="connection"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="commandParameters">ParamArray 表示函数参数个数不确定C#中为params</param>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Shared Function ExecuteScalar(ByVal connection As SqlConnection, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal ParamArray commandParameters As SqlParameter()) As Object
        Dim cmd As SqlCommand = New SqlCommand
        PrepareCommand(cmd, connection, Nothing, cmdType, cmdText, commandParameters)
        Dim val As Object = cmd.ExecuteScalar()
        cmd.Parameters.Clear()
        Return val
    End Function
    ''' <summary>
    ''' add parameter array to the cache
    ''' </summary>
    ''' <param name="cacheKey"></param>
    ''' <param name="commandParameters">an array of SqlParamters to be cached</param>
    ''' <remarks></remarks>
    Public Shared Sub CacheParameters(ByVal cacheKey As String, ByVal ParamArray commandParameters As SqlParameter())
        parmCache(cacheKey) = commandParameters
    End Sub

    Public Shared Function GetCachedParameters(ByVal cacheKey As String) As SqlParameter()
        Dim cachedParms As SqlParameter() = CType(parmCache(cacheKey), SqlParameter())
        If cachedParms Is Nothing Then Return Nothing
        Dim clonedParms(cachedParms.Length - 1) As SqlParameter
        Dim i As Integer
        For i = 0 To cachedParms.Length - 1
            clonedParms(i) = CType(CType(cachedParms(i), ICloneable).Clone(), SqlParameter)
        Next
        Return clonedParms
    End Function
    ''' <summary>
    '''
    ''' </summary>
    ''' <param name="cmd"></param>
    ''' <param name="conn"></param>
    ''' <param name="trans"></param>
    ''' <param name="cmdType"></param>
    ''' <param name="cmdText"></param>
    ''' <param name="cmdParms"></param>
    ''' <remarks></remarks>
    Private Shared Sub PrepareCommand(ByVal cmd As SqlCommand, ByVal conn As SqlConnection, ByVal trans As SqlTransaction, ByVal cmdType As CommandType, ByVal cmdText As String, ByVal cmdParms As SqlParameter())
        If conn.State <> ConnectionState.Open Then conn.Open()
        cmd.Connection = conn
        cmd.CommandText = cmdText
        If trans IsNot Nothing Then cmd.Transaction = trans
        cmd.CommandType = cmdType
        If cmdParms IsNot Nothing Then
            Dim parm As SqlParameter
            For Each parm In cmdParms
                cmd.Parameters.Add(parm)
            Next
        End If
    End Sub
End Class
分享到:
评论

相关推荐

    VB.Net版的SqlHelper

    总的来说,VB.Net版的SqlHelper是开发数据库驱动的应用程序时的一个强大工具,它降低了数据库操作的复杂性,提高了代码质量,并增强了安全性。通过合理地使用SqlHelper,开发者可以更专注于业务逻辑,而不是数据库...

    VB.NET SQLHelper DLL 包.rar

    标题 "VB.NET SQLHelper DLL 包" 涉及的核心技术是使用VB.NET语言开发一个SQLHelper类库,该类库通常是为了简化数据库操作而设计的。SQLHelper类可以帮助开发者更方便、高效地执行SQL语句,减少重复代码,提高代码的...

    VB.NET实现SqlHelper数据库操作组件

    VB.NET实现SqlHelper数据库操作组件,组件中包含数据库操作方法。SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper 封装过后通常是只需要给方法传入一些参数...

    自己用vb.net写的一个SQLServer的SQLHelper类

    本人平常数据库都是用SQLServer,所以特地用vb.net写了一个仅支持SQLServer的SQLHelper类以方便使用,没做修改直接上传,需要的童鞋欢迎下载,稍做修改即可适用于其他数据库:支持查询数据类命令和修改数据类命令,...

    SQL Helper类(含C#和VB)

    VB.NET版本与C#类似,但在语法上有区别,例如使用Sub和Function替代C#的void方法和返回值方法,以及VB.NET特有的With...End With语句可以更简洁地设置对象属性。其他核心功能和设计模式与C#版本保持一致。 4. 使用...

    SQLHelper.dll

    本文将深入探讨SQLHelper.dll的核心原理,以及如何在C#和VB.NET环境中进行有效利用。 首先,SQLHelper.dll是微软.NET Framework的一部分,它提供了基于ADO.NET的数据访问接口,以简化SQL Server的CRUD(创建、读取...

    SQLhelper.vb

    在VB.net或ASP.NET里面很好引用,把类引用进来就可以直接使用了 下面是用的部分。。。 Dim ds4 As DataSet Dim sql4 As String = "select * from table where xx='dd'" ds4 = SqlHelper.ExecuteDataset(con, ...

    SqlHelper

    SqlHelper是.NET框架中一个常用的数据库访问助手类库,它主要为VB.NET和C#开发者提供了方便快捷的SQL语句执行方法,简化了数据库操作。这个压缩包文件可能包含了一个实现SqlHelper功能的源代码文件或者相关的示例...

    vb.netSqlHelper 类

    SqlHelper 类实现详细信息 SqlHelper 类用于通过一组静态方法来封装数据访问功能。该类不能被继承或实例化,因此将其声明为包含专用构造函数的不可继承类

    自制的半成品Sql框架

    1. **SqlHelper**:在VB.NET中,SqlHelper是常见的数据库操作类,它封装了ADO.NET的SqlConnection、SqlCommand、SqlDataAdapter等对象,提供如ExecuteNonQuery(执行非查询操作,如插入、删除、更新)、...

    c#,VB SQLHelper数据库类

    至于压缩包内的文件"**SQLHelper**",这可能是包含了SQLHelper类的源代码文件,可能以.cs或.vb为扩展名,分别对应C#和VB.NET的源代码文件。在这个文件中,开发者可以找到如下的方法和功能: 1. **ExecuteNonQuery()...

    SQLHelper三层模板

    开发者可以定义自己的模板,比如数据库实体类、DAL接口和实现、BLL接口和实现等,然后CodeSmith会根据模板生成相应的C#或VB.NET代码。这极大地减少了手动编写重复代码的时间,提高了开发效率,也让代码更加规范。 ...

    OracleHelper.vb

    OracleHelper.vb 是一个基于VB.NET编写的类库,它的设计灵感来源于SQLHelper,后者是一个广泛用于.NET平台的数据库操作辅助类。OracleHelper.vb 旨在简化Oracle数据库的访问,为开发者提供一套便捷、高效的API接口,...

    SQLHelper(C#)源代码微软官方原始无更改全功能版附调用源码

    翻箱底时找到了SQLHelper.cs,微软官方推出的sql server数据访问模块,仔细看了下,非阉割的版本(我一字没改),英文注释,功能齐全(一些教程上没介绍到的功能这里面也有),推荐刚学ASP.NET的新手下载来研究研究...

    asp.net 常用基础代码 懒人源码 测试版

    它提供了丰富的服务器控件、事件驱动模型以及内置的缓存机制,使得开发者可以使用C#或VB.NET等语言轻松地创建功能强大的Web应用。在这个"asp.net 常用基础代码 懒人源码 测试版"中,我们可能会找到一些常见的ASP.NET...

    SQLHelper类的使用

    在.NET框架中,SQLHelper类是用于简化与数据库交互过程的一个强大工具,它封装了常见的SQL操作,如执行查询、插入、更新和删除等。这一类位于Microsoft.ApplicationBlocks.Data命名空间下,通常需要引用Microsoft....

    SQLHelper.zip 这个是一个父类cs代码和一个测试代码

    LINQ(Language Integrated Query,语言集成查询)是.NET Framework的一项特性,它允许开发者使用强类型、符合C#或VB.NET语法的查询来操作各种数据源,包括SQL数据库。而LINQ to SQL是LINQ的一个子集,专门用于与...

    SQLHELPER,Data Access Application Block Beta 2.0

    VB和CS代表Visual Basic .NET和C#,这是.NET Framework下的两种主要编程语言。在提供的文件中,SQLHelper被实现了这两种语言的版本,这意味着开发者可以根据自己的喜好和项目需求选择合适的实现。 Data Access ...

    asp.net典型模块与项目实战大全源程序

    它支持多种编程语言,如C#和VB.NET,提供了丰富的控件和功能,使得开发人员可以快速构建功能强大的动态网站和Web应用程序。 在源代码中,32个章节覆盖了ASP.NET开发的多个核心领域,包括但不限于: 1. Web表单:...

Global site tag (gtag.js) - Google Analytics