SqlConnection conn = getConnection.getConn();
using (conn)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Insert Into XX values(xxxxx)";
cmd.Parameters.AddWithValue("@xxxx", xxx);
cmd.Parameters.AddWithValue("@xxxxx", xxxx);
conn.Open();
cmd.ExecuteNonQuery();
}
这是一贯写法。后来偶尔看到有人在cmd.ExecuteNonQuery();后面写了conn.close();
请问有必要吗?
我一直都没close过,也没见出过异常啊。
请高手解答。
解决方案 »
- 这样写有错吗?为什么还是赋不了值。。。。
- 请教给点思路,这样的网站如何实现
- 有关ASP.net中带X轴Y轴的图片带鼠标点击事件的控件ASP.net中有没有
- 已知id 如何通过程序选中GridView行
- Asp.net做网站合适么
- 求日期控件,如同梅花雨,但是要下拉框的形式,并带时分秒的
- gridview 分页之后,在不同的页选择数据,怎样才能得到所有页选择的数据
- 请问动态添加控件的问题
- 如何在winform中修改ASP.NET的Web.config文件里的信息啊
- ===有关Datagrid模板列:在里面添加Radio控件,如何设置和获取它们的值[紧急,一定给分]===
- “/membership”应用程序中的服务器错误。
- 问下关于考证
其实不必手动关闭
结束USING的时候会自动关闭的
本群技术交流,疑难解答。大家 一起努力...
.NET开发群号: 38850938
跟大家共享一个问题.
用Dreader dr,dr2读取数据
While(dr.reader())
{
dr2=Sqlcommand....
}
这样数据库的连接,能否及时关闭
……
}
这样更省事相信微软的垃圾回收自己手写我认为纯属多余,有专家认为还会引起内存从构,效率变低
(这是WROX红皮书上讲的,可不是我的评论啊)楼主放心吧
我亲自做过测试,回收很及时的.
自己写的话估计反而不好
try
{}finaly
{Dispose();}
语句MSDN:
可以实例化资源对象,然后将变量传递给 using 语句,但这不是最佳做法。在这种情况下,该对象将在控制权离开 using 块之后保持在范围内,即使它可能将不再具有对其非托管资源的访问权也是如此。换句话说,再也不能完全初始化该对象。如果试图在 using 块外部使用该对象,则可能导致引发异常。由于这个原因,通常最好是在 using 语句中实例化该对象并将其范围限制在 using 块中。Font font2 = new Font("Arial", 10.0f);
using (font2) // not recommended
{
// use font2
}
// font2 is still in scope
// but the method call throws an exception
float f = font2.GetHeight();
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "Insert Into XX values(xxxxx)";
cmd.Parameters.AddWithValue("@xxxx", xxx);
cmd.Parameters.AddWithValue("@xxxxx", xxxx);
conn.Open();
cmd.ExecuteNonQuery();
}
最好这样
否则在别的地方引用conn可能会有异常,而如上写conn范围只作用于using 块