现在,这比实际目的更具有好奇心。如果您有一个SqlConnection
打开的文件并将其附加SqlDataReader
到它,然后尝试使用该文件运行另一个查询,SqlConnection
则它将引发错误。我的问题是如何SqlConnection
知道读者对它有依附感。没有公共财产或的任何东西HasDataReader
,那么SqlConnection
班级怎么知道的?
原始问题:( 不再相关)
嗨,我正在设置一些用于连接池的功能,以及一些我们已经发生的更常见的错误(它总是很容易修复,但我们记不起来了reader.Close()
!)是当我们使用了一个连接时通过许多类/方法,一种方法会打开数据读取器而忘记关闭它。这并不是很糟糕,因为很多时候您要做的就是进入调试器并上一层,然后再查看该函数,并检查它是否具有未关闭的数据读取器。
现在,这是更大的问题。在此连接池中,如果打开了数据读取器,则直到线程获得连接并尝试使用该连接时,它才是未知的,最初打开数据读取器的连接甚至可能不再存在。
如此简单,您如何才能检测到某个连接器上的数据读取器是否打开,并且有没有办法在不关闭连接的情况下关闭读取器?
SqlConnection如何知道读取器已附加到读取器
据我所知,SQLConnection知道它连接有读取器,因为它在内部维护对其的引用。
对Reflector的明智使用表明,SQLConnection对象具有类型为DBConnectionInternal的私有字段,该私有字段填充有此抽象类的许多具体实现之一。当您尝试向连接添加第二个实时读取器时,将在内部连接上调用方法“
ValidateConnectionForExecute”,这将追溯到对内部“
ReferenceCollection”的检查。当这显示现有的实时阅读器时,将引发异常。
我想,如果您愿意的话,可以在运行时通过反射将所有内容挖掘出来。
本文向大家介绍VC判断进程是否具有administrator权限的方法,包括了VC判断进程是否具有administrator权限的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了VC判断进程是否具有admin权限的方法。是的话返回TRUE,否则为FALSE。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的VC程序设计有所帮助。
如果元素具有指定的样式类,则返回 true ;否则返回 false 。 使用 element.classList.contains() 检查元素是否具有指定的样式类。 const hasClass = (el, className) => el.classList.contains(className); hasClass(document.querySelector('p.special'),
问题内容: 我试图弄清楚如何确定一个节点在屏幕上还是屏幕外可见。这仅仅是节点的true / false属性吗?谢谢。(使用swift spritekit) 问题答案: 您可以使用以下命令测试场景中是否有节点: 假设这是一个子类,例如。
本文向大家介绍JS对象是否拥有某属性如何判断,包括了JS对象是否拥有某属性如何判断的使用技巧和注意事项,需要的朋友参考一下 JS对象是否拥有某属性 两种方式,但稍有区别 1,in 运算符 可看到无论是name,还是原形链上的toString,都能检测到返回true。 2,hasOwnProperty 方法 原型链上继承过来的属性无法通过hasOwnProperty检测到,返回false。 需注意
本文向大家介绍请问如何判断一个链表是否有环?相关面试题,主要包含被问及请问如何判断一个链表是否有环?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 方法1:用一个指针数组A,存储已访问过的节点。用一个指针p,每次在链表上移动一步,然后与指针数组A比较,若数组中没有指针与p相同,说明第一次访问p,将p放入数组中;若有指针与p相同,则存在环路,且第一次相同的节点就是环的入口点。 链表长度为n,
问题内容: 我有这段代码,用于检查从我的应用程序中许多地方调用的Activity的Intent中是否有多余的值: 如果未设置isNewItem,我的代码会崩溃吗?在我调用它之前,有什么方法可以告诉它是否已设置吗? 处理此问题的正确方法是什么? 问题答案: 正如其他人所说,两者和都可能返回null。因此,您不想将调用链接在一起,否则您可能最终会调用,这将引发并导致应用程序崩溃。 这就是我要完成的方法