在深层嵌套的最内层函数中使用来自最外层的数据库连接的资源如何使用语句?

时间:2014-07-16 16:29:43

标签: vb.net function resources nested using-statement

这是什么样的正确模式?我想在最外层函数的Using语句中获取数据库连接(如果连接失败则记录和中止)(或者我真的是那个问题),但是在深层嵌套的最内层函数中使用该连接。我想将给定目录中的所有.csv文件导入到数据库中,进行一些自定义切片和放大。在processthisline()中切割。

是一个try / catch / finally in methodthatwillbecalled(),将db保存到我之后的类属性中?也许还有一些其他模式没有发生在我身上?

public sub methodthatwillbecalled
  using db                            <--obtain connection
    processallfiles()
  end using

private sub processallfiles
  for each file in source directory
    processthisfile()

private sub processthisfile
  for each line in file
    processthisline()

private sub processthisline
  split on commas and INSERT to db   <--perform work on connection, many, many times

1 个答案:

答案 0 :(得分:1)

您可能希望将db对象作为参数一直传递或设置类属性。

如果你设置了class属性,你可能需要确保在每个退出的情况下都关闭连接,所以“使用”就像你拥有它更安全。

如果将DB对象作为参数传递,则每个插入的连接都将保持打开状态,如果出现错误,应该正确关闭。

您绝对不希望将连接放在任何其他子目录中,因为这会为每个文件或行打开和关闭(取决于您放置它的位置)。