当前位置:编程学习 > C#/ASP.NET >>

关于数据库的连接

我的想法是这样,为了更好的使用连接池,我设计了计数,设定为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不是每次减一次,是减好几次,这是什么原因? --------------------编程问答-------------------- 没看出有什么用,就是用了50次之后重新new SqlConnection(ConnectionString)而已,本人水平有限,看不出有那么一点点实际作用。 --------------------编程问答-------------------- 等楼下高手解释~~~ --------------------编程问答-------------------- 完全不明白,这不是没事找事型的吗?连接池运行库都托管,不用我们搞。 --------------------编程问答-------------------- Ado.net自己有连接池。你干嘛自己实现?

你的代码中的连接被释放后,还存在于连接池中,在有一个一模一样的ConnectionString的连接被创建时,是从连接池中取。

参考:
SQL Server Connection Pooling (ADO.NET)
http://msdn.microsoft.com/zh-cn/library/8xx3tyca.aspx --------------------编程问答-------------------- 还有一点就是调用count不是每次减一次,是减好几次,这是什么原因? 
================
尝试连接了好几次吧,你可以设个断点跟踪一下
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,