Asp.net源码交流论坛 Asp.net专题讨论区ADO.net讨论区SqlHelper类VB.NET版

1  /  1  页    1  跳转
发表新主题 回复该主题

标题: SqlHelper类VB.NET版

身份:董事长

 
  • UID:2
  • 来自:北京
  • 精华:27
  • 积分:1616
  • 帖子:1427
  • 注册: 2007-05-17
  • 状态: 离线
  • 威望:54.00
  • 金钱:260.65 元
 
源码发布专家

SqlHelper类VB.NET版




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


 
技术问题请直接发布到论坛
问题搜索请点击
引用 回复
 

身份:工程师

 
  • UID:1247
  • 来自:上海-新西兰
  • 精华:1
  • 积分:193
  • 帖子:186
  • 注册: 2007-11-29
  • 状态: 离线
  • 威望:2.00
  • 金钱:23.45 元

回复:SqlHelper类VB.NET版

vb的Sqlhelper确实比较珍贵了,收藏一下
 
赚够积分当斑竹
版主如果觉得我发的文章不错请给我加分
各位觉得我回帖不错请给我好评,谢谢咯
引用 回复
 

身份:学员

 
  • UID:2474
  • 来自:
  • 精华:0
  • 积分:18
  • 帖子:18
  • 注册: 2007-12-12
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.95 元

回复:SqlHelper类VB.NET版

俺是vb爱好者。收藏功能在哪呢?????
 
引用 回复
 

身份:学员

 
  • UID:2474
  • 来自:
  • 精华:0
  • 积分:18
  • 帖子:18
  • 注册: 2007-12-12
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.95 元

回复:SqlHelper类VB.NET版

俺是vb爱好者。收藏功能在哪呢?????
 
引用 回复
 

身份:学员

 
  • UID:2474
  • 来自:
  • 精华:0
  • 积分:18
  • 帖子:18
  • 注册: 2007-12-12
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.95 元

回复:SqlHelper类VB.NET版

怎么调用法?能给个例子吗?
 
引用 回复
 

身份:学员

 
  • UID:2474
  • 来自:
  • 精华:0
  • 积分:18
  • 帖子:18
  • 注册: 2007-12-12
  • 状态: 离线
  • 威望:0.00
  • 金钱:1.95 元

回复:SqlHelper类VB.NET版

给个教程,我不会调用啊。
 
引用 回复
 

身份:学员

 
  • UID:31067
  • 来自:
  • 精华:0
  • 积分:4
  • 帖子:4
  • 注册: 2008-09-13
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.40 元

回复:SqlHelper类VB.NET版

试了一下,可以用我已单独编译成类库,可在项目中引用了,he he 好东东,以前是自己写的,但没这个简洁,后来改用这个也很不错,谢谢楼主了
引用 回复
 

身份:学员

 
  • UID:31387
  • 来自:
  • 精华:0
  • 积分:0
  • 帖子:1
  • 注册: 2008-09-17
  • 状态: 离线
  • 威望:0.00
  • 金钱:0.10 元

回复:SqlHelper类VB.NET版

试试...
 
[img]E:\Picture\签名图片\2007122314481687869.jpg[/img]
引用 回复
 
1  /  1  页    1  跳转
发表新主题 回复该主题

现在时间是:2008-11-20 02:11:12 京ICP备06046876号