C# 使用MySQL和ASP.NET MVC的池

C# 使用MySQL和ASP.NET MVC的池,c#,asp.net,mysql,asp.net-mvc,C#,Asp.net,Mysql,Asp.net Mvc,我正在用ASP.NET和MySQL开发一个web应用程序,但我没有使用SqlClient提供程序 我在某处(我不记得在哪里)读到,如果我需要建立连接池,我需要在文件web.config中添加一些行 要建立连接,每个模型中都定义了一个连接字符串,类似于: string sqlConnection = "server=localhost; user id=root; password=***; database=test; pooling=true;Min Pool Size=0; Max

我正在用ASP.NET和MySQL开发一个web应用程序,但我没有使用SqlClient提供程序

我在某处(我不记得在哪里)读到,如果我需要建立连接池,我需要在文件
web.config
中添加一些行

要建立连接,每个模型中都定义了一个连接字符串,类似于:

string sqlConnection = 
    "server=localhost; user id=root; password=***; database=test; pooling=true;Min Pool Size=0; Max Pool Size=60;";
要连接并执行查询,请执行以下操作:

MySqlConnection conection;
conection = new MySqlConnection(sqlConnection);
string query = "SELECT COUNT(*) FROM documents WHERE user_id = ?user_id;
MySqlCommand cmd = new MySqlCommand(query, conection);`

cmd.Connection.Open();
cmd.Prepare();
cmd.Parameters.Add("?user_id", userID);
cmd.ExecuteReader();
...
cmd.Connection.Close();
但是我想打开连接池并使用池连接,我不想每次都打开和关闭连接

我把它放在
web.config
文件中:

<connectionStrings>
    <remove name="LocalMySqlServer"/>
    <add name="LocalMySqlServer" 
         connectionString="Data Source=localhost; userid=root;  password=***; database=test; Pooling=true; Min Pool Size=50; Max Pool Size=100;"  
         providerName="MySql.Data.MySqlClient"/>
</connectionStrings>

. 

只有在调用模型并打开连接时才会发生这种情况


启动时使用连接池的方法是什么?

我认为您误解了连接池的概念

连接池是数据库驱动程序或提供程序提供的一种机制。您仍然需要请求连接,但不是每次创建连接时驱动程序/提供程序都创建一个全新的连接,而是它维护一个现成的预热对象池,并将其中一个交给您

这一切都是在幕后悄悄发生的

更新:

要使用
web.config
中的连接字符串:

string sqlConnection = 
   ConfigurationManager.ConnectionStrings["LocalMySqlServer"].ConnectionString;
您可能必须添加对
系统的引用。配置

并加上:

using System.Configuration;
到类文件的顶部


这适用于.NET 4.0项目,但原则与.NET 2.0相同。

您可以尝试将最小池大小=0更改为更大的值。这将确保池中始终有X个连接可用。

请尝试:


System.Configuration.ConfigurationManager.connectionString[“LocalMySqlServer”]

那么你能使用web.config中的连接字符串连接和查询数据库吗?托马斯·李,不,我不知道怎么做,实际上我在每个模型上定义了连接字符串,但我认为这不是正确的方法。