gpt4 book ai didi

c# - 是否有必要处置 SqlConnection 以及 SqlCommand?

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:34 24 4
gpt4 key购买 nike

是否有必要分别处理 SqlConnection 和 SqlCommand?

我正在对应用程序进行一些维护工作,发现以下代码:

public void CallStoredProc(string storedProcName)
{
using (SqlCommand command = new SqlCommand(storedProcName, CreateConnection()))
{
command.CommandType = CommandType.StoredProcedure;
command.Connection.Open();

// Additional code here.

command.ExecuteNonQuery();
}
}

这是否会在正常情况下以及出现错误时正确清理 SqlConnection?或者我们是否必须将代码更改为:

public void CallStoredProc(string storedProcName)
{
using (SqlConnection connection = CreateConnection())
{
using (SqlCommand command = new SqlCommand(storedProcName, connection))
{
command.CommandType = CommandType.StoredProcedure;
command.Connection.Open();

// Additional code here.

command.ExecuteNonQuery();
}
}
}

最佳答案

是的,有必要在您的代码执行后释放 sqlconnection 和 sqlcommand 对象。

现在,您可以通过两种方式实现这一目标:

  1. 在 using 语句中编写代码,它将负责处理对象,因为 sqlconnection 和 sqlcommand 实现了负责处理对象的 IDisposable 接口(interface)。
  2. 通过在 sqlconnection 对象上显式调用 .close() 方法。

关于c# - 是否有必要处置 SqlConnection 以及 SqlCommand?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33116834/

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