Posto un può di codice sperando che si riesce a capire meglio l'errore.

Codice PHP:
public class DataConnection
{
    private 
readonly Queue[list=1m_connectionPool = new Queue[list=1]();
    private 
string connString;

    public 
DataConnection(string connString)
    {
        
this.connString connString;
    }

    private 
OleDbConnection GetSqlConnection(out bool isNewConnection)
    {
        
OleDbConnection conn null;
        
lock (m_connectionPool)
        {
            if (
m_connectionPool.Count 0)
            {
                
conn m_connectionPool.Dequeue();
            }
        }
        if (
conn == null)
        {
            
isNewConnection true;
            
conn = new OleDbConnection(connString);
            
conn.Open();
        }
        else
        {
            
isNewConnection false;
        }
        return 
conn;
    }

    private 
void ReleaseConnection(OleDbConnection conn)
    {
        
lock (m_connectionPool)
        {
            
m_connectionPool.Enqueue(conn);
        }
    }

    public 
void ExecuteSelect(string sqlCommandQueryCallback callback)
    {
        
OleDbConnection conn null;
        
bool repeat false;
        do
        {
            
bool isNewConnection true;
            try
            {
                
conn GetSqlConnection(out isNewConnection);
                
OleDbCommand cmd = new OleDbCommand(sqlCommandconn);
                
OleDbDataReader reader cmd.ExecuteReader();
                
callback(reader);
                
reader.Close();
                
ReleaseConnection(conn);
                
repeat false;
            }
            catch (
Exception e)
            {
                if (
conn != null)
                    
conn.Close();
                if (!
isNewConnection)
                    
repeat true;
                
System.Windows.Forms.MessageBox.Show(e.ToString(), "Error");
            }
        } while (
repeat);
    }

Qualche idea?