为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯7119047 2018-12-06 17:02:20
public static SqlDataReader ExecuteReader(string connString, CommandType cmdType, string cmdText, params SqlParameter[] cmdParms)        {            SqlCommand cmd = new SqlCommand();            SqlConnection conn = new SqlConnection(connString);            try            {                PrepareCommand(cmd, conn, null, cmdType, cmdText, cmdParms);                SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);                cmd.Parameters.Clear();                return rdr;             }            catch (Exception ex)            {                conn.Close();                throw ex;            }        }  怎样修改好呢,现在发现经常有超时的现象,数据库连接池已满的现象
查看完整描述

10 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

看看是不是在用完SqlDataReader之后有没有即时关闭。 另外看看超时的sql语句是不是可以优化。
查看完整回答
反对 回复 2019-01-21
?
繁花不似锦

TA贡献1851条经验 获得超4个赞

全局用一个SqlConnection不行吗.SqlCommand.CommandTimeout 设置长一点就不超时了.
查看完整回答
反对 回复 2019-01-21
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

把数据库链接池设置大一点.
查看完整回答
反对 回复 2019-01-21
?
波斯汪

TA贡献1811条经验 获得超4个赞

conn open后没有Close
查看完整回答
反对 回复 2019-01-21
?
米脂

TA贡献1836条经验 获得超3个赞

Please check the cmdText
查看完整回答
反对 回复 2019-01-21
?
当年话下

TA贡献1890条经验 获得超9个赞

这不就是SqlHelper么……看看外面用的时候有没有SqlDataReader给Dispose掉,其他不会有问题的
查看完整回答
反对 回复 2019-01-21
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

在使用SqlDataReader的时候使用Using块括起来就不会忘记关闭了,养成这个习惯就好了
查看完整回答
反对 回复 2019-01-21
?
RISEBY

TA贡献1856条经验 获得超5个赞

1:using 和try catch 双剑合一 2:优化sqlserver[查询计划] 3:优化连接池..................
查看完整回答
反对 回复 2019-01-21
?
慕斯王

TA贡献1864条经验 获得超2个赞

在finally{} 里面判断是否关闭了reader和connection。如果没有,则关闭,就不会出现异常了
查看完整回答
反对 回复 2019-01-21
?
holdtom

TA贡献1805条经验 获得超10个赞

SqlDataReader rdr; try { ...... } catch (Exception ex) { throw ex; } finally { conn.Close(); } return rdr;
查看完整回答
反对 回复 2019-01-21
  • 10 回答
  • 0 关注
  • 457 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信