我想在退出方法时正确处理 SqlConnection 对象。所以我使用如下所示的“using”语句。
public int Hello()
{
using(SqlConnection con=new SqlConnection(constring))
{
using(SqlCommand cmd=new SqlCommand(Query,con))
{
try
{
con.Open();
return cmd.ExecuteNonQuery();
}
catch(Exception ex)
{
throw ex;
}
finally
{
con.Close()
}
}
}
}
现在,我想知道的是,上面的代码会不会
- 当 ExecuteNonQuery 中发生Exception 时正确处理连接。
- 确保我们不会遇到任何连接池问题
- 确保数据正确返回
- 如果 SqlConnection 发生异常,它会处理对象吗?
谁能帮我解决这个问题?
最佳答案
如果您只是想抛出它,则不需要 try/catch
,只需将您的代码更改为:
public int Hello()
{
using(SqlConnection con=new SqlConnection(constring))
{
using(SqlCommand cmd=new SqlCommand(Query,con))
{
con.Open();
return cmd.ExecuteNonQuery();
}
}
}
并且无论发生什么情况,无论是否有异常,如果连接处于打开和处置状态,连接都将关闭。
关于c# - 在 ADO.NET 中处理 "using"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462707/