首页 新闻 赞助 找找看

Dapper 随便点几下列表页就出数据库连接池问题了

0
悬赏园豆:5 [已关闭问题] 解决于 2017-09-17 19:55

项目使用的是.NET MVC5 + 三层 + Dapper 架构,下面我帖下关键代码:

BaseDAL:

public IDbConnection Conn
        {
            get
            {
                return CreateConnection();
            }
        }
        public static IDbConnection CreateConnection()
        {
            IDbConnection conn = null;
            switch (connectionName)
            {
                case "SQLServer":
                    conn = new SqlConnection(connStr);
                    break;
                default:
                    conn = new SqlConnection(connStr);
                    break;
            }
            conn.Open();
            return conn;
        }

分页列表代码:

复制代码
public List<ContentModel> GetPageList(int pageSize, int pageIndex, out int rowCount, bool isAsc)
        {
            using (Conn)
            {
                string sortAsc;
                if (isAsc)
                {
                    sortAsc = "asc";
                }
                else
                {
                    sortAsc = "desc";
                }
                int start = (pageIndex - 1) * pageSize + 1;
                int end = pageIndex * pageSize;
                StringBuilder sql = new StringBuilder();
                sql.Append("select * from(select *, Row_Number() over(order by id " + sortAsc + ") as rowNumber from " + tb + ")t where t.rowNumber >= @start and t.rowNumber <= @end ");
                List<ContentModel> result = Conn.Query<ContentModel>(sql.ToString(), new { start = start, end = end }).ToList();
                rowCount = GetCount();
                return result;
            }
        }
复制代码

然后我前台列表页快速点下一页下一页,不一会数据库链接池就满了。

我的代码是否承在问题?我看别 人的例子都是这样写的啊。以前用sqlhelper的时候没有发现这个问题。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2017-08-18 23:12
< >
分享
其他回答(1)
0

也有可能代码没有问题,是网络问题

悟行 | 园豆:12559 (专家六级) | 2017-08-21 09:15

我的是本地开发环境。加了max pooling就不会出现了。

支持(0) 反对(0) DZCMS | 园豆:5 (初学一级) | 2017-08-21 17:47
4

conn.Open(); 不要加入了;
Dapper会默认处理,没有Open 就会打开,使用完毕会释放。

冷不防一笑 | 园豆:202 (菜鸟二级) | 2019-01-22 14:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册