【问题标题】:Closing a SqlDataReader and locks aquired by sp_getapplock关闭 SqlDataReader 和 sp_getapplock 获取的锁
【发布时间】:2021-10-28 14:31:26
【问题描述】:

这是我的流程:

  1. 在 using 子句中创建数据库连接
  2. 调用 sp_getapplock
  3. 创建 SqlDataReader 以获取数据
  4. 调用 reader.Close() 或将 SqlDataReader 包装在 using 子句中。
  5. 调用 sp_releaseapplock
  6. 使用子句关闭数据库。

当我执行第 5 步时,由于我不再持有锁而引发异常。

我可以安全地省略对 sp_releaseapplock 的调用,并依靠 SqlDataReader 的关闭来释放和清理该锁吗?

【问题讨论】:

  • 您可能希望将此问题标记为 SQL Server 问题并在问题本身的文本中指出这一点,因为我相信这是特定于 SQL Server 并且可能是 Transact SQL。

标签: sqldatareader locks


【解决方案1】:

这与 SqlDataReader 的执行方式有关。用 CommanBehavior.Connection 调用 ExecuteReader 的代码更深一些。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2011-09-04
    • 2018-11-12
    相关资源
    最近更新 更多