首页 新闻 搜索 专区 学院

今天在新公司发现这样的代码,是不是有错误

0
悬赏园豆:10 [已解决问题] 解决于 2008-08-24 19:18
<P>public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlCommand cmd = new SqlCommand();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlConnection conn = new SqlConnection(connString);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; try<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cmd.Parameters.Clear();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return rdr;</P> <P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; catch (Exception ex)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conn.Close();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; throw ex;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</P> <P>&nbsp;怎样修改好呢,现在发现经常有超时的现象,数据库连接池已满的现象</P>
999999999999999的主页 999999999999999 | 初学一级 | 园豆:6
提问于:2008-08-18 12:50
< >
分享
最佳答案
0
看看是不是在用完SqlDataReader之后有没有即时关闭。 另外看看超时的sql语句是不是可以优化。
玉开 | 大侠五级 |园豆:8822 | 2008-08-18 13:05
其他回答(9)
0
全局用一个SqlConnection不行吗.SqlCommand.CommandTimeout 设置长一点就不超时了.
Jerry Qian | 园豆:19 (初学一级) | 2008-08-18 12:59
0
把数据库链接池设置大一点.
侯垒 | 园豆:3435 (老鸟四级) | 2008-08-18 13:05
0
conn open后没有Close
重典 | 园豆:2442 (老鸟四级) | 2008-08-18 13:05
0
Please check the cmdText
江大渔 | 园豆:267 (菜鸟二级) | 2008-08-18 13:17
0
这不就是SqlHelper么……看看外面用的时候有没有SqlDataReader给Dispose掉,其他不会有问题的
Gray Zhang | 园豆:17610 (专家六级) | 2008-08-18 16:58
0
在使用SqlDataReader的时候使用Using块括起来就不会忘记关闭了,养成这个习惯就好了
亚历山大同志 | 园豆:48 (初学一级) | 2008-08-18 23:17
0
1:using 和try catch 双剑合一 2:优化sqlserver[查询计划] 3:优化连接池..................
roboth | 园豆:28 (初学一级) | 2008-08-19 09:46
0
在finally{} 里面判断是否关闭了reader和connection。如果没有,则关闭,就不会出现异常了
West | 园豆:1095 (小虾三级) | 2008-08-19 13:59
0
SqlDataReader rdr; try { ...... } catch (Exception ex) { throw ex; } finally { conn.Close(); } return rdr;
要有好的心情 | 园豆:502 (小虾三级) | 2008-08-21 12:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册