方法中有Connection类型的参数,在方法里需要关掉吗?

pippe 2007-08-25 12:16:09
我的很多方法里都是传Connection类型的参数进来
我在方法里都没关掉,在方法外传递进来的那个关掉
不知道在方法里需要把它关闭掉吗?
谢谢
...全文
223 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
amandag 2007-08-25
  • 打赏
  • 举报
回复
一般在那个方法打开就在那个方法关闭,否则代码维护很麻烦
pippe 2007-08-25
  • 打赏
  • 举报
回复
因为我打开Connection后要执行一系列的数据操作,都是传递Connection进去的
如果在方法里关的话我怕后面的就无法执行了
pippe 2007-08-25
  • 打赏
  • 举报
回复
我是把连接conn做成一个方法
关闭conn也做成一个方法
然后执行中间的数据库操作也做成一个方法
然后调用

比如conn_open()是连接,连接存放在共有变量gconn里
conn_close()是关闭,里面是关闭gconn.Close();
cmd(Connection)是数据操作,没有写关闭
以上是封装

我在一个程序里这么写
conn_open()
cmd(gconn);
conn_close();
这样可以吗?
还是在cmd里面也需要关闭??
dongwei2345 2007-08-25
  • 打赏
  • 举报
回复
如果你是
SqlConnection conn = GetConn();
this.UseConn(conn);
conn.Close();

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

不过建议你在方法里面关,免得出错
yan53125 2007-08-25
  • 打赏
  • 举报
回复
我刚想说cmd.Connection.Close();要写到finaly里
就发现了CloseConn(cmd.Connection);
没什么区别吧
地下室小红叔 2007-08-25
  • 打赏
  • 举报
回复
这样关就行
下面这个小例子或许有帮助
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();
}
}
wapit 2007-08-25
  • 打赏
  • 举报
回复
我想应该是在哪打开的就在哪关掉.我没这么用过.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧