关于数据库的连接
我的想法是这样,为了更好的使用连接池,我设计了计数,设定为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#