传递 ADO SQL 连接 ByVal

Passing an ADO SQL connection ByVal

我有一个用 Visual Basic 编写的现有应用程序。这是一个基于 ASP.NET 和 WCF 构建的 Web 应用程序,我们用于报告。

结果是页面每隔设定的时间刷新一次数据。通常在一天左右后,这个特定页面崩溃并且必须重置服务,但是其他页面可以正常工作。我的工作理论与联系有关。

与 SQL 服务器的连接是通过 class SQLDataAccess 建立的。 class 在实例化时创建一个新连接,可以通过调用 class 上的方法关闭连接。

大多数调用如下所示:

Try
    existingConnection.DataRequest.CommandText = "dbo.p_Select_Table"
    DataAccessConnection.ExecuteDataSet()
Catch
Finally
    If(existingConnection IsNot Nothign) Then
        existingConnection.closeConnection()
    End If
End Try

然而,最初建立了两个连接,然后两个连接被传递的次数比这个错误报告多。他们通过了 ByVal.

这是否会创建新连接而忽略关闭旧连接?

当你按值传递任何引用类型时,你传递的是一个引用。没有对象被复制。按值传递方法参数基本上与将一个变量分配给另一个变量相同。如果类型是值类型,则复制对象并且两个变量包含不同的对象。对于引用类型,两个变量都引用同一个对象。就像现实世界中的物体一样。如果我把车借给你,是否意味着有两辆车?不不不,按值传递引用类型对象也是一样的。