gpt4 book ai didi

C# 关闭数据库连接

转载 作者:太空狗 更新时间:2023-10-30 00:10:05 24 4
gpt4 key购买 nike

我需要对此有一点了解,当你打开一个到数据库的连接时,你能保持它打开吗?

这个连接是如何关闭的?

这是好的做法还是坏的做法?

目前我有一个对数据库的请求没有问题

oCON.Open();
oCMD.ExecuteNonQuery();
oCON.Close();

然而,我看到的一些例子是这样的,没有关闭数据库。

oCON.Open();
oCMD.ExecuteNonQuery();

如何关闭此连接?

这是不好的做法吗?

最佳答案

我正在寻找副本,因为这似乎是一个常见问题。我找到的最佳答案是 this one , 但是,我不喜欢给出的答案。

您应该始终在完成连接后立即关闭它。数据库允许的连接数是有限的,而且它也占用大量资源。

确保关闭发生的“老派”方法是使用 try/catch/finally block :

SqlConnection connection;
SqlCommand command;

try
{
// Properly fill in all constructor variables.
connection = new SqlConnection();
command = new SqlCommand();

connection.Open();
command.ExecuteNonQuery();

// Parse the results
}
catch (Exception ex)
{
// Do whatever you need with exception
}
finally
{
if (connection != null)
{
connection.Dispose();
}
if (command != null)
{
command.Dispose();
}
}

但是,using 语句是首选方式,因为它会自动处理对象。

try
{
using (var connection = new SqlConnection())
using (var command = new SqlCommand())
{
connection.Open();
command.ExecuteNonQuery();

// Do whatever else you need to.
}
}
catch (Exception ex)
{
// Handle any exception.
}

using 语句的特殊之处在于,即使抛出异常,它仍然会处理在代码执行停止之前创建的对象。它使您的代码更加简洁易读。

christophano 所述在评论中,当您的代码被编译成 IL 时,它实际上被写成一个 try/finally block ,复制上面示例中所做的事情。

关于C# 关闭数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36375727/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com