C# 连接池技术

 class PoolLink
    {      

    string sqlStr="";
        SqlConnection con;

 

    /// <summary>
        /// C# 数据库连接池
        /// </summary>
        /// <param name="serverLink">服务连接地址</param>
        /// <param name="dbName">数据库名</param>
        /// <param name="maxPoolSize">最大连接数</param>
        /// <param name="minPoolSize">最小连接数</param>
        /// <param name="timeout">延迟时间</param>
        /// <param name="lifetime">不用时的存活时间</param>
        public PoolLink(string serverLink, string dbName,string maxPoolSize,string minPoolSize,string timeout,string lifetime)
        {
            sqlStr= "server=" + serverLink + ";integrated security=sspi;database=" + dbName + ";";
            sqlStr+= "Max Pool Size=" + maxPoolSize + ";Min Pool Size=" + minPoolSize + ";";
            sqlStr+= "Connect Timeout=" + timeout + ";Connection Lifetime=" + lifetime + ";";
            sqlStr+= "Asynchronous Processing=true;";
        }

 

        public SqlConnection link()
        {

    try
            {
              con = new SqlConnection(sqlStr);
              con.Open();

     }

    catch (Exception e)
            { throw e}
            return con;
        }

        public void conClose(SqlConnection con)
        {
            con.Close();
        } 

  }

 

 

//测试

 
        SqlConnection con;
        DBLink1 db;

   //启动 连接池

        private void button2_Click(object sender, EventArgs e)
        {
            db = new PoolLink("serverLink","dbName","maxPoolSize","minPoolSize","timeout","lifetime");
        }
        int i = 0;

    //打开连接池
        private void button3_Click(object sender, EventArgs e)
        {
            con = db.link();
            if (con.State == ConnectionState.Open)
            {
                i++;

                MessageBox.Show("OK"+i.ToString());    

         }
        }

 

//测试结果:当i=maxPoolSize (最大连接数)时,便会报错。如果在取到最大数之间释放前面的连接时,则i大于maxPoolSize  

 

经测试,最大连接数不是很准确,以maxPoolSize=5为例,有时正好是5个,有时能取到6个,最多取过8个,但没出现小于5个的时候。请大家用的时候注意一下。

posted on 2010-04-13 11:51  VictorShan  阅读(685)  评论(1编辑  收藏  举报

导航