【发布时间】:2009-06-05 23:17:30
【问题描述】:
如果说我需要针对两个单独的数据库运行两个单独的 SQL 语句。现在我做(伪代码):
Try{
declare variable connectionA to DatabaseA
declare variable connectionB to DatabaseB
connectionA.open()
connectionB.open()
declare variable SQLCmdA with ConnectionA and one SQL statement
declare variable SQLCmdB with ConnectionB and another SQL statement
SQLCmdA.executeNonQuery()
SQLCmdB.executeNonQuery()
}
Catch ()
{
print error message
}
Finally(){
connectionA.close()
connectionB.close()
SQLCmdA.Dispose()
SQLCmdB.Dispose()
}
上面看起来很笨拙。如果我有三个不同的 sql 语句,我将需要三个不同的 SQLCmd 变量。
是否有做这些事情的“标准”方式,尤其是在效率、性能方面?如果有人可以提供一个简单的改进伪代码,那就太好了。
此外,我是否需要担心实现连接池以节省资源并加快程序速度?如果是这样,在这种情况下我该如何实现?
谢谢!
【问题讨论】:
-
为什么必须运行这个方法中的所有命令?为什么不能为每个 sql 命令/数据库连接创建一种方法?
-
我会使用使用块来处理关闭/处置问题,但除此之外,这个想法是合理的。我会问为什么你需要同时引用所有这些 - 为什么不三个单独的调用,分成不同的方法,全部连续调用?
-
是的,我不需要同时打开连接。所以我可以创建一个通用方法,它接受一个连接变量和一个 SQL 命令变量,也许还有一个 SQL 字符串,并在方法内执行查询?这样一来,一切都变得更整洁了吗?这是一种常见的方法吗?
标签: c# sql database connection