传递 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
.
这是否会创建新连接而忽略关闭旧连接?
当你按值传递任何引用类型时,你传递的是一个引用。没有对象被复制。按值传递方法参数基本上与将一个变量分配给另一个变量相同。如果类型是值类型,则复制对象并且两个变量包含不同的对象。对于引用类型,两个变量都引用同一个对象。就像现实世界中的物体一样。如果我把车借给你,是否意味着有两辆车?不不不,按值传递引用类型对象也是一样的。
我有一个用 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
.
这是否会创建新连接而忽略关闭旧连接?
当你按值传递任何引用类型时,你传递的是一个引用。没有对象被复制。按值传递方法参数基本上与将一个变量分配给另一个变量相同。如果类型是值类型,则复制对象并且两个变量包含不同的对象。对于引用类型,两个变量都引用同一个对象。就像现实世界中的物体一样。如果我把车借给你,是否意味着有两辆车?不不不,按值传递引用类型对象也是一样的。