public object ExecuteScalar(DbCommand cmd)
{
            cmd.Connection.Open();
            object ret = cmd.ExecuteScalar();
            cmd.Connection.Close();
            return ret;
 }如果我cmd.ExecuteScalar()出错后,之后的cmd.Connection.Close()是否会执行?请大家注意cmd是DbCommand。

解决方案 »

  1.   

    可以try
    {}
    catch
    {}
    finally
    {
    cmd.Connection.Close()
    }
      

  2.   

    报错了,后面的代码不会执行
    建议使用try{}catch{}
      

  3.   

    try 
    {
               cmd.Connection.Open(); 
                object ret = cmd.ExecuteScalar(); 
                cmd.Connection.Close(); 
                return ret;} 
    catch 
    {} 
    finally 

       
      cmd.Connection.Dispose();
      
    }
      

  4.   

    不会执行,既然都已经报错咯,还关闭干嘛呢.呵呵.你这又没有想法把错误throw出来.而且你返回一个object,但是你的ret由于报错,没被赋值.所以随便的try catch一下算咯.
      

  5.   

    不会执行,既然都已经报错咯,还关闭干嘛,建议使用try{}catch{}
      

  6.   

    using(){}吧 不管你自己关闭不关闭  程序运行完后都会自己销毁