日期:2014-05-18  浏览次数:20442 次

方法中有Connection类型的参数,在方法里需要关掉吗?
我的很多方法里都是传Connection类型的参数进来
我在方法里都没关掉,在方法外传递进来的那个关掉
不知道在方法里需要把它关闭掉吗?
谢谢

------解决方案--------------------
我想应该是在哪打开的就在哪关掉.我没这么用过.

------解决方案--------------------
这样关就行
下面这个小例子或许有帮助
private void btSave_Click(object sender, System.EventArgs e)
{
string htmlStr= divContent.InnerHtml;
SqlCommand cmd=new SqlCommand();
try
{
cmd.Connection=GetConn();
cmd.CommandText= "update myTable set editTime=getdate() ";
cmd.CommandType=CommandType.Text;
cmd.Connection.Open();
cmd.ExecuteNonQuery();
cmd.Connection.Close();
Response.Write( "update success ");
}
catch(Exception ex)
{
CloseConn(cmd.Connection);
Response.Write( "update fail. Error Message : "+ex.Message) ;
}

}
private SqlConnection GetConn()
{
string str=System.Configuration.ConfigurationSettings.AppSettings[ "connString "];
SqlConnection conn=new SqlConnection(str);
return conn;
}
private void CloseConn(SqlConnection conn)
{
if (conn.State==ConnectionState.Open)
{
conn.Close();
}
}
------解决方案--------------------
我刚想说cmd.Connection.Close();要写到finaly里
就发现了CloseConn(cmd.Connection);
没什么区别吧
------解决方案--------------------
如果你是
SqlConnection conn = GetConn();
this.UseConn(conn);
conn.Close();

这样的话就没必要再在方法里面关了

不过建议你在方法里面关,免得出错
------解决方案--------------------
一般在那个方法打开就在那个方法关闭,否则代码维护很麻烦