| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 772 人关注过本帖
标题:try和return冲突?
只看楼主 加入收藏
mextb1860
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2005-7-10
收藏
 问题点数:0 回复次数:6 
try和return冲突?

public static SqlDataReader GetReader(string nameProcedure)
{
SqlConnection Con;
SqlDataReader dr;
SqlCommand cmd;
string NameProcedure = nameProcedure;
Con = DB.CreateCon();
cmd = new SqlCommand();
cmd.Connection = Con;
cmd.CommandText = NameProcedure;
cmd.CommandType = CommandType.StoredProcedure;
Con.Open();
try
{
dr = cmd.ExecuteReader();
dr.Read();
return dr;
}
catch
{
HttpContext.Current.Response.Write("数据操作失败");

}
finally
{
Con.Close();
dr.Dispose();
cmd.Dispose();
}
}

这里的代码我想大家看也没有什么错误吧?
但是。。。就是错误的。提示的错误是

图片附件: 游客没有浏览图片的权限,请 登录注册



但是错误去掉try语句就没有问题。不会有错误。 。怎么回是呢?
搜索更多相关主题的帖子: try cmd return Con string 
2006-08-01 15:37
mextb1860
Rank: 1
等 级:新手上路
帖 子:179
专家分:0
注 册:2005-7-10
收藏
得分:0 
ddddddddd
2006-08-01 23:50
microshot
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-7-28
收藏
得分:0 

finally
{
Con.Close();
dr.Dispose();
cmd.Dispose();

return dr;
}
try中去掉这一句

2006-08-05 07:17
chy710
Rank: 1
等 级:新手上路
帖 子:77
专家分:0
注 册:2006-2-24
收藏
得分:0 
不是try和return冲突
而是你已经close了链接。。。read还能反回吗?虽然你的返回在前,close在后,,,
可以这样:
dr=cmd.executeread(commandbehavior.closeconnection);

2006-08-07 12:48
yichen
Rank: 1
等 级:新手上路
帖 子:303
专家分:0
注 册:2005-3-9
收藏
得分:0 
3,4楼说的多有道理

衣带渐宽终不悔, 为伊消得人憔悴。 纸上得来终觉浅, 绝知此事要躬行。
2006-08-07 14:24
メ冰枫ぱ雪
Rank: 1
等 级:新手上路
威 望:2
帖 子:326
专家分:0
注 册:2004-11-13
收藏
得分:0 
3楼的方法不可行,反回值不就没了。。?

试下4楼的。。

动态网页技术交流群:16449874 免费网络收藏夹:http:///Favorite
2006-08-07 18:19
铲铲
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:34
帖 子:506
专家分:0
注 册:2006-5-2
收藏
得分:0 

你们都错了
你们考虑过吗?
try块中,如果没有异常当然是好的,最终将执行return语句(当然在返回前,无论如何会执行finally块的内容)
但是try块中,出现异常,则立刻跳转到catch块中执行,但是无论catch块或者finally块中都没有return语句,既然已经异常,try块中的返回语句就再也不会执行了。
所以当出现异常的时候就没有返回了。系统提示并非所有路径都有返回值是对的。
你必须在catch块中处理异常并返回适当的结果。


至于另外一个问题是,Reader对象不能在close时返回,他是个在线对象,不能再函数中创建并返回,而必须在使用的时候创建使用,用完关闭(可以把关闭放在finally中)。如果你要用函数(方法)的方式访问数据库,建议使用DataSet对象。


铲铲是也
2006-08-08 23:25
快速回复:try和return冲突?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019614 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved