如下代码是我基类中的一个方法,我想知道该方法调用完后finally中的conn.Close()会不会被执行?因为我在conn.Close()之前已经返回值了(return rows_count;),还请指点,谢谢:#region 运行存储过程(INSERT、UPDATE、DELETE),返回成功行数
protected int RunProcedure (string procedure_name , IDataParameter[] parameters)
{
    int rows_count;
    try
    {
        if(conn.State == ConnectionState.Closed)
        {
            conn.Open();
        }
        cmd = this.BuildSqlCommand(procedure_name , parameters);
        rows_count = cmd.ExecuteNonQuery();
        return rows_count;
    }
    catch(Exception error)
    {
        throw error;
    }
    finally
    {
        conn.Close();
    }
}
#endregion

解决方案 »

  1.   

    have you tried<TD width=60 runat="server" bgcolor='<%# DataBinder.Eval(Container.DataItem, "Name").ToString() %>'>?
      

  2.   

    上面贴错了>>>conn.Close()会不会被执行?会的,但如果你就是重抛异常的话,建议这么做protected int RunProcedure (string procedure_name , IDataParameter[] parameters)
    {
        int rows_count;
        try
        {
            if(conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }        cmd = this.BuildSqlCommand(procedure_name , parameters);
            rows_count = cmd.ExecuteNonQuery();        return rows_count;    }
        finally
        {
            conn.Close();
        }
    }