当前位置: 代码迷 >> ASP.NET >> using (reader)用与不用有什么区别?解决方法
  详细解决方案

using (reader)用与不用有什么区别?解决方法

热度:4977   发布时间:2013-02-26 00:00:00.0
using (reader)用与不用有什么区别?
using   (reader)
                                {
                                        while   (reader.Read())
                                        {
                                                if   (!reader.GetValue(0).Equals(DBNull.Value))
                                                {
                                                        listUserCode.Add(reader.GetString(0));
                                                }
                                        }
                                }
用了     using   (reader)和不用有什么区别吗?不用也行的啊?

------解决方案--------------------------------------------------------
不用也行,但你要在后面加上 reader.close();

using ( ) //用了之后,当函数体内的语句执行完后,它自动帮你关闭
{
....
}
------解决方案--------------------------------------------------------
用了之后,.NET框架会自动释放它所占用的资源
------解决方案--------------------------------------------------------
用了using(){} 不用手动关闭datareader
不用using当然也可以,但是必须reader.Close()来释放资源
------解决方案--------------------------------------------------------
顯示手工關閉Reader.Close()是個好習慣
------解决方案--------------------------------------------------------
用了using语句,那么当这个语句结束的时候系统会自动的调用对象的Dispose方法来释放资源,如果不用这个语句,那么一定要手动来调用Dispose方法.
------解决方案--------------------------------------------------------
再用完之后会自动帮你释放括号内所创建的资源!
这样的资源一般都是要继承Idispose接口,实现dispose方法
------解决方案--------------------------------------------------------
用.Close()比较好
我从来不用using
------解决方案--------------------------------------------------------
using会在程序离开using块的时候自动调用using对象的Dispose方法。即等同于:

try
{
while (reader.Read())
{
if (!reader.GetValue(0).Equals(DBNull.Value))
{
listUserCode.Add(reader.GetString(0));
}
}
}
finally
{
reader.Dispose
}
  相关解决方案