多线程和连接池

时间:2014-03-28 12:06:06

标签: asp.net multithreading

我遇到了asp.net Web服务的问题,这些服务随机出现“sql transaction已完成不再可用”等错误,“事务已经提交......” 在阅读了大量的帖子后,我认为共享连接问题的问题是我无法找到问题所在。 从0开始,我想创建一个“2个porpuoses类” - 确保连接已关闭 - 少编码 简单的类有两个方法GDT(Give DataTable)和Ejecutar(用西班牙语执行)

¿任何人都可以告诉我这个课程是否适合没有共享连接的问题?

Public Class clsAccesoBD2

Public Function GDT(ByVal strSql As String) As DataTable
    Try
        Using Cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CadenaPEA").ConnectionString)
            Using da As New SqlDataAdapter(strSql, Cnn)
                Using dt As New DataTable
                    da.Fill(dt)
                    Return dt
                End Using
            End Using
        End Using
    Catch ex As Exception
        'Log code here

投掷         结束尝试     结束功能

Public Function Ejecutar(ByVal strSql As String) As Integer
    Try
        Using Cnn As New SqlConnection(ConfigurationManager.ConnectionStrings("CadenaPEA").ConnectionString)
            Using Cb As New SqlCommand(strSql, Cnn)
                Dim RegistrosAfectados As Integer
                Cnn.Open()
                RegistrosAfectados = Cb.ExecuteNonQuery()
                Cnn.Close()
                Return RegistrosAfectados
            End Using
        End Using
    Catch ex As Exception
        'Log code here
        Throw
    End Try

End Function

结束班

角城

1 个答案:

答案 0 :(得分:0)

Cnn.Close()构造的finally块中关闭数据库连接(即try-catch-finally