永发信息网

asp.net 关于using语句的一些疑问

答案:1  悬赏:70  手机版
解决时间 2021-04-16 09:17
  • 提问者网友:川水往事
  • 2021-04-15 15:37

using有二种用法,一种是作为指令,用于引用命名空间;一种是作为语句,允许用户定义一个范围。

我的疑问就是第二点,在做ADO.NET的时候,定义SqlConnection作用范围,是否还用手工关闭连接,还有SqlDataReader对象

我看一些比较成熟的代码都是最后手工指定关闭,释放对象,请大家给我讲一下这个问题,一直比较疑惑,先感谢了。

最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-04-15 17:06
可以使用 Using 块保证系统在代码退出该块时释放资源。如果正在使用消耗大量内存或其他组件也需要使用的系统资源时,这样处理十分有用。

代码完成数据库连接时释放数据库连接
确保在源文件的开始包含该数据库连接的适当 Imports 语句(.NET 命名空间和类型)(本例中为 System.Data.SqlClient)。

创建具有 Using 和 End Using 语句的 Using 块。在块中放入处理数据库连接的代码。
声明连接并创建其实例作为 Using 语句的一部分。
Imports System.Data.SqlClient

Public Sub AccessSql(ByVal s As String)
Using sqc As New System.Data.SqlClient.SqlConnection(s)
MsgBox("Connected with string """ & sqc.ConnectionString & """")
End Using
End Sub

无论退出块的方式如何(包括未处理异常的情况),系统都会释放该资源。

注意:不能从 Using 块外部访问 sqc,这是因为其范围只限于该块。
对系统资源(如文件句柄或 COM 包装)可以使用同样的方法。如果要确保退出 Using 块后其他组件还能使用资源,则可使用 Using 块。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯