连接对象的问题

minhua1983 2008-10-06 03:19:30
try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch
{
//
}
finally
{
conn.Close();
}

我想问的是~但是cmd命令对象执行时,如果出错,执行finally里面的关闭conn对象是否会出错。
我的理解是会出错。可是我同事说教科书里面是这么写的。
...全文
81 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jin225 2008-10-07
  • 打赏
  • 举报
回复
finally
{}

里面的东西是肯定会被执行的
sftl25789 2008-10-06
  • 打赏
  • 举报
回复
没明白你的意思,如果出错的话应该执行catch中的程序呀
建议加上
if(conn.state==sqlconnection.closed)
{
conn.open;
}
devinlin 2008-10-06
  • 打赏
  • 举报
回复
不管你怎么出错finally
都是会被执行到的
liuyilidan 2008-10-06
  • 打赏
  • 举报
回复
不管什么情况
finally里的语句都要执行
zhongzzf 2008-10-06
  • 打赏
  • 举报
回复
应该是说 不管走
try 或 catch
然后都要走finally
周公 2008-10-06
  • 打赏
  • 举报
回复
确实在关闭Connection对象的时候也可能会出现异常的。
周公 2008-10-06
  • 打赏
  • 举报
回复

try
{
conn.Open();
cmd.ExecuteNonQuery();
}
catch
{
//
}
finally
{
if(conn.State!=ConnectionState.Close)//如果当前连接不是关闭状态,则关闭数据库连接
{
conn.Close();
}
}
wjxluck 2008-10-06
  • 打赏
  • 举报
回复

finally
{
conn.Close();
}

无论怎么样finally 里的东西都要被执行
我姓区不姓区 2008-10-06
  • 打赏
  • 举报
回复
你试试直接运行以下代码就知道会不会出错了

SqlConnection conn = new SqlConnection();
conn.Close();

zhengweitao 2008-10-06
  • 打赏
  • 举报
回复
教科书里面应该是说 不管走
try 或 catch
然后都要走finally

你问的是不是这个意思
我是新手 原谅我的无知

5Br 2008-10-06
  • 打赏
  • 举报
回复
if(conn.state==sqlconnection.closed)
{
conn.open;
}
jzywh 2008-10-06
  • 打赏
  • 举报
回复
你可以检查下 conn 的state, 如果是open,那就close
5Br 2008-10-06
  • 打赏
  • 举报
回复
我的智商有点低,听不懂LZ说什么

62,046

社区成员

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

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

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

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