C# MySQL Connection Pooling

.net, c#, multithreading, mysql

Solution

Pooling is turned on by default, so you don't need that connection string parameter.

Don't share `MySqlConnection` instances. That's it.

Pooling is not something you implement in your code, it's done for you by ADO.NET.

Problem

I am having `C# multi threading` application and using `MySQL` with single connection to whole application. But when two or more thread try to access database at the same time, then i get below error : There is already an open `DataReader` associated with this `Connection` which must be closed first. My Connection code is below ``` public static _connectionSetup = new MySqlConnection("Server=server ; Database=database;User ID=user;Password=pass;Pooling=true;"); ``` and when i need to use connection i am using below code :- ``` using (MySqlConnection connection =_connectionSetup ) { using (MySqlCommand command = new MySqlCommand("proc", connection)) { .... } } ``` I tried used `pooling=true` and i have create two separated connection as well for two different thread, but still i am getting above error. Am I missing something? How can I implement connection pool so that all thread will use separate connection and won't cause any issue?

Original source

Related problems