SQL中的close和dispose有啥区别? [复制]

Posted

技术标签:

【中文标题】SQL中的close和dispose有啥区别? [复制]【英文标题】:Whats the difference between close and dispose in SQL? [duplicate]SQL中的close和dispose有什么区别? [复制] 【发布时间】:2016-02-13 22:47:54 【问题描述】:

我通常使用下面的代码,应该是对的吗?

 using (SqlConnection myConn = new SqlConnection(ConnectionString))
     
         using (SqlCommand cmd = new SqlCommand(sqlString, myConn))
         
             myConn.Open();
             rows = cmd.ExecuteNonQuery();
         
         // TO DO .
     

哪个更喜欢?请告诉我它们之间的区别。在我看来:当 Pooling 为 false 时, close 和 dispose 都会关闭连接。当 Pooling 为 true 时 close 不会关闭集合,但 dispose 会。

【问题讨论】:

“关闭收藏” ??你的意思是连接。如果启用池,Close 不会关闭物理连接,而只是告诉池该连接已准备好使用。无论如何,您应该更喜欢 using 声明所有实现 IDisposable 的东西。 connection.Dispose 将隐式调用 connection.Close 谢谢老哥,我明白了 【参考方案1】:

当您在 SqlConnection 上调用 Dispose() 时,在内部,它也会调用 Close()

不用担心 - 您可以手动使用 Close(),或者让 Dispose() 为您完成。

【讨论】:

谢谢,我会用 sql profiler 测试一下。

以上是关于SQL中的close和dispose有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

处置和关闭有啥区别? [复制]

使用 Asp.net 连接字符串的 connection.close 和 connection.dispose 之间的区别? [复制]

SQL 和 SQL*Plus 有啥区别? [关闭]

请问JavaScript语言中的window.close()和window.parent.close()有啥区别?

请问JavaScript语言中的window.close()和window.parent.close()有啥区别?

http2 中的 half close 有啥作用? http2中流状态的本地和远程之间的区别是啥?