代码之家  ›  专栏  ›  技术社区  ›  Cyril Gupta

将命令对象/读取器传递给函数是一个好主意吗?

  •  1
  • Cyril Gupta  · 技术社区  · 14 年前

    我在使用.net 4(c)的mysql数据库时遇到了一些无法解释的错误(连接池中的连接用完)。到目前为止,我所有的尝试都是徒劳的。现在我也遇到了一种情况,在这种情况下,表上的锁很长一段时间都没有被清除,尽管我一直在做的是从表中读取操作。

    我的代码看起来不错(我已经把所有的读者和连接放在using块中)。唯一的异常是,我一直将mysqlcommand和mysqldatareader对象作为参数传递给使用它们的函数。

    这对我来说似乎不是个坏主意,因为它避免了一些重复(枯燥!)。但由于我找不到其他解释,我不得不怀疑这是造成问题的原因。

    你怎么认为?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Guffa    14 年前

    不,传递对连接、命令和数据读取器的引用不是问题。只要代码的哪一部分处理引用的责任明确,就可以随意抛出引用。

    你没说要处理命令对象。它们有一种处置方法,也应该被处置为安全的一方。

        2
  •  0
  •   btt    14 年前

    正如guffa所说,传递对这些实例的引用没有任何技术问题。但是,更好的做法是在执行数据访问的方法中填充一个dto,并将其传递给链中的下一个方法,或者返回它。它会降低你的复杂度,减轻你的困惑。