try
       {
            conn.Open();
            .......
            conn.Close();
        }
        catch
        {
            conn.Close();
            throw;
        }这种代码,一方面conn.Open()如果异常了凭什么要conn.close()?第二方面,catch的处理太不负责任了,隐藏错误不是解决错误的思路。还有返回 SqlDataReader 类对象的代码,所谓的conn.close()之类的代码所代码的思想(确保关闭连接)完全被自己扔掉了。这是确实代码质量审核着一道手续、缺少实际开发经验的结果。