在ADO.NET中使用"using"语句

smi*_*ilu 1 .net c# asp.net ado.net

每当我退出方法时,我想正确处理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()
       }
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想知道的是,请问上面的代码

  1. 在ExecuteNonQuery中发生异常时正确处理Connection .
  2. 确保我们不会遇到任何ConnectionPool问题
  3. 确保正确返回数据
  4. 如果在SqlConnection中发生异常,它会处置该对象吗?

谁可以帮我这个事?

Mik*_*oud 6

你不需要try/catch它,如果你只是要抛出它,只需将你的代码更改为:

public int Hello()
{
    using(SqlConnection con=new SqlConnection(constring))
    {
        using(SqlCommand cmd=new SqlCommand(Query,con))
        {
            con.Open();
            return cmd.ExecuteNonQuery();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

无论发生什么,例外与否,如果连接打开并处理掉,连接将被关闭.