我的想法是这样,为了更好的使用连接池,我设计了计数,设定为50次,使用一次就自减一次。代码如下  int t = 0;
        SqlCommand cmd;
        SqlDataAdapter da;
        DataSet ds;
        string url, dbName, userID, pwd;
        url = "**********";
        dbName = "*******";
        userID = "********";
        pwd = "*********";
        string ConnectionString = "Data Source=" + url + ";Network Library=DBMSSOCN;Initial Catalog=" + dbName + ";User ID=" + userID + ";Password=" + pwd + ";Pooling=true;Min Pool Size=0;Max Pool Size=50;Connect Timeout=180";
        if (Class1.Count == 50)
        {
            Class1.Con = new SqlConnection(ConnectionString);
            Class1.Con.Open();
            cmd = new SqlCommand("select * from GMTools_Serverinfo ", Class1.Con);
            da = new SqlDataAdapter(cmd);
            ds = new DataSet();
            da.Fill(ds);
            Class1.Con.Close();            
        }
        else 
        {
            Class1.Con.Open();
            cmd = new SqlCommand("select * from  GMTools_Users", Class1.Con);
            da = new SqlDataAdapter(cmd);
            ds = new DataSet();
            da.Fill(ds);
            Class1.Con.Close();
public class Class1
{
    public Class1()
    {    }
    private static int count = 51;    public static int Count
    {
        get
        {
            if (count == 0)
                count = 51;
            return count--;
        }
    }    private static SqlConnection con;
    public static SqlConnection Con
    {
        get
        {
           return con;
        }
        set 
        {
            con = value;
        }
    }
    
  }
问题在于这个是否合理,如果不合理,请指出,还有一点就是调用count不是每次减一次,是减好几次,这是什么原因?

解决方案 »

  1.   

    没看出有什么用,就是用了50次之后重新new SqlConnection(ConnectionString)而已,本人水平有限,看不出有那么一点点实际作用。
      

  2.   

    Ado.net自己有连接池。你干嘛自己实现?你的代码中的连接被释放后,还存在于连接池中,在有一个一模一样的ConnectionString的连接被创建时,是从连接池中取。参考:
    SQL Server Connection Pooling (ADO.NET)
    http://msdn.microsoft.com/zh-cn/library/8xx3tyca.aspx
      

  3.   

    还有一点就是调用count不是每次减一次,是减好几次,这是什么原因? 
    ================
    尝试连接了好几次吧,你可以设个断点跟踪一下