【问题标题】: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
  • 谢谢老哥,我明白了

标签: c# sql


【解决方案1】:

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

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

【讨论】:

  • 谢谢,我会用 sql profiler 测试一下。
猜你喜欢
  • 2011-04-08
  • 1970-01-01
  • 2017-10-24
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 2022-12-03
  • 2015-03-03
  • 2015-11-23
相关资源
最近更新 更多