| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 704 人关注过本帖
标题:SqlConnection 和 SqlCommand 放在 try{} 外面 有什么好处???
只看楼主 加入收藏
郝江坤
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2011-10-20
结帖率:40%
收藏
 问题点数:0 回复次数:3 
SqlConnection 和 SqlCommand 放在 try{} 外面 有什么好处???
public class GradeService
    {
        public List<Grade> GetAllGrade()
        {
            List<Grade>  gradeList =new List<Grade>();
            SqlConnection sqlConn = null;
            SqlCommand sqlComm = null;
            try
            {
                string sql = string.Format("SELECT * FROM Grade");
                sqlConn = DBHelper.GetSqlConn();
                sqlComm = new SqlCommand(sql,sqlConn);
                SqlDataReader sqlDR = sqlComm.ExecuteReader();
                while(sqlDR.Read())
                {
                    Grade grade = new Grade();
                    grade.GradeId =Convert.ToInt32(sqlDR["GradeID"].ToString());
                    grade.GradeName = sqlDR["GradeName"].ToString();

                    gradeList.Add(grade);

                }
                return gradeList;
            }
            catch (Exception ex)
            {
                throw ex;
            }
           finally
            {
                sqlConn.Close();
            }
        }
    }
搜索更多相关主题的帖子: sql class public null 
2012-03-15 10:59
smart0721
Rank: 6Rank: 6
等 级:侠之大者
威 望:4
帖 子:106
专家分:468
注 册:2012-2-10
收藏
得分:0 
这就涉及变量的作用域问题,在 try{}里面定义的话,那只在在 try{} 里起作用,在下面 finally{}中的sqlConn 就找不到了,需要重新定义
放在外面定义的话,在整个GetAllGrade()能起作用
不过放在外面定义的话,它相对会占用更多的内存,所以要尽可能的使用局部变量来代替全局变量或者外部变量
所以要看你具体的程序设计来决定在该变量在哪里定义比较好



[ 本帖最后由 smart0721 于 2012-3-15 12:12 编辑 ]
2012-03-15 12:05
郝江坤
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2011-10-20
收藏
得分:0 
回复 2楼 smart0721
明白了   谢啦  
2012-03-15 12:39
zhp223
Rank: 5Rank: 5
等 级:职业侠客
帖 子:99
专家分:362
注 册:2010-3-21
收藏
得分:0 
这个涉及到异常处理与非托管资源释放的问题,如果定义在try里面,出现异常的时候就调用不了非托管资源释放的代码(xxx.Close()、xxx.Dispose()等),
所以涉及到有非托管资源的代码时一般都要像LZ这样写

日有所思,夜有所梦
2012-03-18 15:57
快速回复:SqlConnection 和 SqlCommand 放在 try{} 外面 有什么好处???
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024885 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved