gpt4 book ai didi

c# - 在 “using” block 中是关闭的 OracleConnection

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:48 26 4
gpt4 key购买 nike

如果在 catch 语句中发出 System.Environment.Exit(0),在“using” block 中是否关闭了 OracleConnection?

例子:

        OracleConnection oracleConnection = getOracleConnection();

using (oracleConnection)
{

try
{

oracleConnection.Open();
OracleCommand cmd = getApplicantsCmd(oracleConnection);
OracleDataReader rdr = cmd.ExecuteReader();

List<Applicant> applicants = new List<Applicant>();
while (rdr.Read())
{
Applicant applicant = new Applicant();
applicant.email = (string)rdr["GOREMAL_EMAIL_ADDRESS"];
applicants.Add(applicant);
}

return applicants;

}
catch (Exception ex)
{
Console.WriteLine("Failure getting applicant records: " + ex.Message);
System.Environment.Exit(0);
return null;
}
}

如果在查找记录时抛出异常,我希望执行停止。

有没有更好的方法来处理这个问题?

最佳答案

与数据库的物理连接没有关闭。它只是返回到 ADO.NET 连接池以供重用。 ADO.NET 保留一个连接池,以避免每次您要执行 SQL 查询时都打开到数据库的物理连接。您还应该将 OracleCommandOracleDataReader 包装在 using 语句中,以确保即使在发生异常时也能正确处理。

关于c# - 在 “using” block 中是关闭的 OracleConnection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12821838/

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